作者 | Enoch CK

译者 | 刘畅

整理 | Jane

出品 | Python大本营

【导语】无论你是一位高级的AI工程师还是学生,你都会在工作或学习过程中需要用到 Python。自 1991 年首次发布后,Python 很快就成为了程序员和技术人员最喜欢的语言。作为一种拥有相对简单语法的高级解释语言,Python 成为了大家的不二之选。 一些集成的 Python 库也被应用在各个领域,如生物信息学(biopython),数据科学(pandas),机器学习(keras / tensorflow)甚至天文学(astropy)。尽管 Python 的执行速度比Java或其他语言慢得多,但无可否认它提高了工作效率。

(图片来源:原文引用自 Stack Overflow)

在这篇文章中,作者总结了在 Python 编程过程 5 个有助于提高编码效率的编程技巧。希望大家在改进代码时,这篇文章能提供一丝灵感。

技巧一:使用单行(one-liners)简化语句

每次看到那么多行的条件语句的时候,是不是都觉得头好痛? 如果简单一些的还好说,能找出不同条件下的关系,但是复杂的简直就是要迷失自我了。今天给大家介绍的 Python 单行功能也许能帮你解决这个困扰。例如,条件语句:

1>>> if alpha > 7:2>>>    beta = 9993>>> elif alpha == 7:4>>>    beta = 995>>> else:6>>>    beta = 0

可以简化为:

1>>> beta = 999 if alpha > 7 else (beta == 99 if alpha == 7 else 0)

是不是很神奇! 如果仔细检查我们写的代码,一定可以找到能简化的代码。除了条件语句之外,for 循环也可以简化。 例如,将整数列表加倍:

1>>> lst = [1, 3, 5]2>>> doubled = [] 3>>> for num in lst:4>>>    doubled.append(num*2)

可以简化为一行:

1>>> doubled = [num * 2 for num in lst]

当然,如果将所有内容都链接成一行,可能会有点麻烦。同时,还要确保你的代码中没有过度使用单行代码。

技巧二:字符串快速操作

要反转字符串,我们只需添加::-1作为列表索引,就可以让你的工作非常轻松。

1>>> a =  "ilovepython" 2>>> print a[::-1] 3nohtypevoli

同样的技巧也可以应用于整数列表。在 Python 中,字符串操作非常简单。 例如,如果要使用以下的预定义变量 str1、str2 和 lst3 来输出一个句子。

1>>> str1 = "Totally"2>>> str2 = "Awesome"3>>> lst3 = ["Omg", "You", "Are"]

只需使用.join()方法和算术运算符即可创建所需的句子。

1>>> print ' '.join(lst3)2Omg You Are3>>> print ' '.join(lst3)+' '+str1+' '+str24Omg You Are Totally Awesome

除了字符串操作,还建议大家了解更多有关正则表达式的方法,以便更有效地搜索字符串和过滤模式。

技巧三:嵌套的列表组合

itertools是我最喜欢的 Python 库之一。试想一下,你的代码中有十几个列表,经过一些操作后,会得到一个深度嵌套的列表。itertools正是用来解决语法混乱的工具。

1>>> import itertools2>>> flatten = lambda x: list(itertools.chain.from_iterable(x))3>>> s = [['"', 'An', 'investment'], ['in'], ['knowledge'], ['pays'], ['the', 'best'], ['interest."', '--'], ['Benjamin'], ['Franklin']]4>>> print(' '.join(flatten(s)))5" An investment in knowledge pays the best interest." -- Benjamin Franklin

从上面的例子中可以看出,我们可以使用.join()和 itertools 方法来组合嵌套的列表和字符串。itertools 中的.combinations()方法可以用于从输入迭代中返回元素的长度子序列。

技巧四:简单的数据结构

回到技巧一,可以非常容易的使用单行程序来初始化Python中的数据结构。 Harold Cooper 使用以下代码实现了单行树结构:

1>>> def tree(): return defaultdict(tree)

上面显示的代码只是定义了一个默认值为树的字典。

1>>> reduce( (lambda r,x: r-set(range(x**2,N,x)) if (x in r) else r), range(2,N), set(range(2,N)))

Python 还拥有一个强大的库,如Collections,它可以帮助您解决各种现实问题,不用编写冗长的代码。

1>>> from collections import Counter2>>> myList = [1,1,2,3,4,5,3,2,3,4,2,1,2,3]3>>> print(Counter(myList))4Counter({2: 4, 3: 4, 1: 3, 4: 2, 5: 1})

技巧五:轻松打印(print)

最后分享给大家的是,我希望自己能在学习初期的时候就知道的一个技巧。 我们不需要使用 .join()和循环,就可以打印一个带有字符串的数组。

1>>> row = ["1", "bob", "developer", "python"]2>>> print(','.join(str(x) for x in row))31,bob,developer,python

单行代码则如下:

1>>> print(*row, sep=',')21,bob,developer,python

另一个巧妙的打印技巧是使用枚举。 enumerate 是Python的内置函数,非常有用。 因此,不需要写如下一个四行代码:

1>>> iterable = ['a','b','c']2>>> c = 0 3>>> for item in iterable: 4>>>     print c, item 5>>>     c+= 160 a71 b82 c

只需两行就可以完成同样的工作:

1>>> for c, item in enumerate(iterable):2>>>     print c, item

Python 中有成千上万的打印技巧,比如 pprint,以后还可以再与大家进行分享。

本次内容就先为大家介绍这五个技巧。 如果你还知道其他的Python技巧,也可以留言和大家一起分享。

原文链接:

https://towardsdatascience.com/five-python-tricks-you-need-to-learn-today-9dbe03c790ab

热 文 推 荐

☞谁人来帮库克卖“苹果”?

☞雷军立 Flag:小米 5 年 100 亿 All in AIoT

☞离开 PC,在 iPad Pro 上也能编程了?

print_r('点个好看吧!');var_dump('点个好看吧!');NSLog(@"点个好看吧!");System.out.println("点个好看吧!");console.log("点个好看吧!");print("点个好看吧!");printf("点个好看吧!\n");cout <

点击“阅读原文”,打开 CSDN App 阅读更贴心!

喜欢就点击“好看”吧

python 打开程序 最大化_@Python 程序员,如何最大化提升编码效率?相关推荐

  1. python朋友圈刷屏_“Python太火了!请救救Java!”9万程序员刷屏朋友圈 !

    没想到有生之年,笔者能观察到"霸主陨落"的过程,继PLPY4月榜单官宣,Python躺赢,再度"夺"冠,实力甩下Java和C后,近期,Stack Overflo ...

  2. python ptz相机 角度_资深程序员来告诉你python为什么越来越火

    "我是文科生,是不是没必要学计算机.学编程?"前两天,一位社会学专业大四学生,给我们留了言.然而,这是个典型的偏见.文科生不需要学编程的时代,早就过去了.我自己也在自学Python ...

  3. python打开是什么样的-Python程序的执行过程是什么样的?

    我们都知道,使用CC++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制可执行文件.运行该程序的时候,就可以二进制程序从硬盘载入到内存中并运行. 但 ...

  4. python祝福祖国代码_“小程序 大梦想”之创意编程校园邀请赛------53信息技术学科周...

    原标题:"小程序 大梦想"之创意编程校园邀请赛------53信息技术学科周 如今"人工智能"."创意编程"这些新热词已经深入人们的学习和生 ...

  5. python捕获信号退出_[python]如何处理python程序的主动退出问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 文章来源 挑战自我博客:http://www.tiaozhanziwo.com/archives/688.html 1.遇到的问题简述 当一个python ...

  6. python8个程序语言_所有程序员必知--2019年最流行的8种编程语言和框架

    上图是您应该在2019年根据各种,统计和事实寻找的8种最佳编程语言和框架的列表. 在技​​术不断进步的当代世界中,计算机无处不在.为计算机编写程序是当前IT市场上最关键的工作配置文件之一. 您是否想过 ...

  7. python打开文件切片_收藏 | 从Python安装到语法基础,小白都能懂的爬虫教程!(附代码)...

    来源:大数据 作者:罗攀 蒋仟 本文约5000字,建议阅读20分钟. 本文立足基础,讲解Python和PyCharm的安装,及Python最简单的语法基础和爬虫技术中所需的Python语法. 本文涉及 ...

  8. python打开中文文件名_解决python打开中文文件名乱码的问题

    解决python打开中文文件名乱码的问题 发布时间:2020-07-27 11:20:22 来源:亿速云 阅读:162 作者:清晨 小编给大家分享一下解决python打开中文文件名乱码的问题,相信大部 ...

  9. python打开excel表_如何用python打开excel

    最近看到好几次群里有人问xlwt.wlrd的问题,怎么说呢,如果是office2007刚出来,大家用xlsx文件用不习惯,还可以理解,这都10年过去了喂,就算没有进化到office2016,还在用of ...

最新文章

  1. 声波配网:通过特定的声波序列将wifi密码发到无屏幕的设备上
  2. python爬虫requests-Python爬虫之requests介绍
  3. NYOJ 128 前缀式计算
  4. 工业交换机常见问题汇总!
  5. leetcode 435. 无重叠区间
  6. centos7 复制移动删除
  7. python 慕课网请编写一个fib函数_中国大学MOOC(慕课)Python编程基础章节测试答案...
  8. 直播将是所有企业必须做的
  9. Mac下关于ssh命令的简化
  10. 关于websql语法
  11. 西门子atch指令详解_西门子plc指令中文详解
  12. 在Linux中打印常用书信与信封(转)
  13. XML解析—开源XOM类库
  14. 原生js获取一段时间内每隔几分钟的时间数组
  15. wap.php区别,WAP與PHP程序設計之基礎篇
  16. 2022年全球与中国POS终端市场现状及未来发展趋势
  17. MATLAB中 feval 函数的用法
  18. 【爬虫实战】国家企业公示网-运行效果
  19. 人工智能-概述:数据分析---->人工智能【机器学习----->深度学习】
  20. 输入220V输出5V-24V电流:200MA-500MA.非隔离高压IC

热门文章

  1. MFC日志(2011.4.9)
  2. CCNA之单臂路由实验
  3. ajax提交时“加载中”提示的处理方法
  4. java编程思想读书笔记二(对象的创建)
  5. 基本的正则表达式符号 【】
  6. hdoj 3018 Ant Trip(无向图欧拉路||一笔画+并查集)
  7. CSS3实现8种Loading效果【第二波】
  8. xxx is not mapped 错误 解决方案
  9. Project Chameleon Work In Progress 12
  10. windows sdk 学习笔记(8)