python 提升效率_@Python 程序员,如何最大化提升编码效率?
作者 | 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 = 999if alpha > 7else (beta == 99if alpha == 7else0)
是不是很神奇! 如果仔细检查我们写的代码,一定可以找到能简化的代码。除了条件语句之外,for 循环也可以简化。 例如,将整数列表加倍:
1>>> lst = [1, 3, 5]2>>> doubled = [] 3>>> for num in lst:4>>> doubled.append(num*2)
可以简化为一行:
1>>> doubled = [num * 2for 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>>> deftree():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 = 03>>> 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
python 提升效率_@Python 程序员,如何最大化提升编码效率?相关推荐
- python 线程池_老程序员的经验分享:Python 从业十年是种什么体验?
出于某些原因,想记录一下我过去数年使用 Python 的经验和一些感悟.毕竟算是一门把我带入互联网行业的语言,而我近期已经几乎不再写 Py 代码, 做一个记录,也许会对他人起到些微的帮助,也算是纪念与 ...
- python美女源代码_单身程序员,每晚用python抓取百万张美女图片,连女友都不想找了...
每当夜深人静时,这位长期单身的程序员就会起床开电脑,然后用python抓取百万张美女图片,存进U盘,目的目前还不知道,但技术是万能的,这样一来,可能连找女朋友的钱都省了. 其实,还有更好看的! 而且还 ...
- python画雪景_来自程序员的圣诞节浪漫-用Python画一棵带音乐的雪夜圣诞树
本文我们用 Python 来画一棵带音乐效果的雪夜圣诞树,基本思路如下: 用 Python 画一棵圣诞树作为背景图 在圣诞树背景图中添加雪落效果及音乐 下面来看一下具体实现. 首先,我们来画一棵圣诞树 ...
- python图像识别车票_是程序员就用Python查12306的票
0.环境 操作系统:Windows Python版本:3.5.2 1.前言 当你想查询一下火车票信息的时候,你还在上 12306 官网吗?或是打开你手机里的 APP? 下面让我们来用 Python 写 ...
- python js 效率_巧用 db.system.js 提升20% 开发效率
开门见山,20%是我造的,哈哈,为的就是让各位mongoer能够对db.system.js collection 引起注意. 这个也是在我最近浏览InfoQ 的时候,看到一篇关于MongoDB 文章 ...
- python 编程效率_五个Python编程Tips,帮你提高编码效率
无论你是一位高级的AI工程师还是学生,你都会在工作或学习过程中需要用到 Python.自 1991 年首次发布后,Python 很快就成为了程序员和技术人员最喜欢的语言.作为一种拥有相对简单语法的高级 ...
- python自学行吗-上万程序员总结:自学Python,掌握到什么程度就可以找工作了?...
原标题:上万程序员总结:自学Python,掌握到什么程度就可以找工作了? 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 在这里把最好的分享给大家!希望能带给大伙儿 ...
- Python开发指南[1]之程序员计时小时钟(附源码)
Python开发指南[1]之程序员计时小时钟 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 Python作为一门编程语言,这门语言的魅力和影响力已经远超C#.C++等编程 ...
- 猿来小课Python视频老师简述让程序员崩溃的瞬间
作为一个资深的程序猿,我日常的任务就是和代码无数次交锋,在公司敲代码时不知道你们有没有遇到过让你崩溃的瞬间呢?本篇文章猿来小课Python视频老师就收集整理了一些让程序员崩溃的瞬间,让我们下面一起来对 ...
最新文章
- c++ 图片验证码识别_基于tensorflow 实现端到端的OCR:二代身份证号识别
- python实现流媒体传输_基于OpenCV的网络实时视频流传输的实现
- lingo变量无限制版本_LINGO笔记
- Docker报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. ...
- python调用sparksql,使用Python从MySQL数据库表读取SparkSQL
- 升级tomcat7.0之后的问题
- MVC中提交表单的4种方式
- .NET跨平台实践:用C#开发Linux守护进程
- 国庆档43.87亿收官:《长津湖》一家独大 影视股喜忧参半
- java调用linux设备,使用Java调用Linux系统命令
- Html中锚点的使用【转】
- 蚂蚁可信原生负责人入选“2021年度全球青年领袖”名单
- form表单ajax上传文件
- Flash Builder4.7破解方法
- 如何用matlab做参数估计,参数估计的MATLAB实现
- sci论文发表的难度高吗
- 苹果AppStore应用商店生存之道以及市场攻略最全解析
- 魔兽TBC常用WA字符串收集
- 知到智慧树君子学堂智慧树章节答案
- Unity-timeline(时间线)
热门文章
- 象棋子 设计模式_通过设计国际象棋游戏了解策略模式
- u3d ab包 循环依赖_为什么要保持软件包依赖项自由循环的五个原因
- java rmi 使用管道_使用Java RMI时要记住的两件事
- intent隐式和显式_Neo4j:使隐式关系成为显式和双向关系
- 仔细看看_仔细看看,您会发现需要改进的地方
- lambdas for_Java 8 Lambdas –缺少脱离Java的链接
- GC解释:收集器概述
- jvm类加载机制和类加载器_在JVM之下–类加载器
- jenkins api_接触Jenkins(Hudson)API,第2部分
- 在Java中调用祖父母方法:您不能