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

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

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

1>>> if alpha > 7:

2>>> beta = 999

3>>> elif alpha == 7:

4>>> beta = 99

5>>> 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 Are

3>>> print ' '.join(lst3)+' '+str1+' '+str2

4Omg You Are Totally Awesome

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

技巧三:嵌套的列表组合

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

1>>> import itertools

2>>> 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 Counter

2>>> 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+= 1

60 a

71 b

82 c

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

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

2>>> print c, item

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

python 编程效率_五个Python编程Tips,帮你提高编码效率相关推荐

  1. python 数据分析库_五个 Python 常用数据分析库

    前言 Python 是常用是数据分析工具,常用的数据分析库有很多,下面主要介绍如下五个分析库:NumPy.Pandas.SciPy.StatsModels.Matplotlib. NumPy 是一个非 ...

  2. python快速入门【五】---- 面向对象编程、python类

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

  3. 孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备

    孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天本来应当继续学习Python的数据库操作,但根据过去我自学 ...

  4. python 判断类型_青少年之Python编程课程安排lt;第一季gt;

    第一章    开启Python之旅 1.   你将了解什么是Python 2.   在电脑上安装并简单使用Python 3.   开始通过Python与计算机进行交流(编程) 第二章    变量 1. ...

  5. python程序纠错_编程语言10个编程技巧5个纠错步骤

    [金融特辑]光大银行科技部DBA女神带你从0到1揭秘MGR 善始者实繁,克终者盖寡,这句话用来学习编程的过程也很合适.在成为顶尖选手之前,总会遇到很多困难,甚至想放弃.本文作者 Jeff Hale 是 ...

  6. python是什么编程教程-编程python是什么_谁的Python教程最好?

    谁的Python教程最好? 建议你可以看看这里的<Python基础教程>和<Python学习手册>应该适合你的. 希望对你有用. 记得采纳呀~ Python中的9个代码小实例! ...

  7. python中文编程教学_中谷python中文视频教程(全38集)

    python在线教学视频教程共40节,中谷教育录制,主要介绍了python编程方面的知识. python在线教学-01-走进python python在线教学-02-开始编程吧 python在线教学- ...

  8. python编程制作_一种Python编程创作平台的制作方法

    本发明涉及在线浏览器技术领域,特别涉及一种Python编程创作平台. 背景技术: 目前项目整体使用javascript+html+css实现,用户界面编写上使用react框架.具体实现上是将pytho ...

  9. 计算机科学与python编程导论_【基于Python】MIT OCW 计算机科学与编程导论

    [基于Python]MIT OCW 计算机科学与编程导论 (MIT Course Number 6.0001)Introduction to Computer Science and Programm ...

最新文章

  1. Android Intent setAction的使用注意
  2. 【arduino】nodemcu(ESP8266)发送邮件库测试笔记,SMTP email
  3. java取整公式,Java取整函数 四舍五入函数-Go语言中文社区
  4. Android内存管理-SoftReference的使用
  5. 了解一下运行软件的自我保护(RASP)
  6. 潜龙号开启水下机器人_揭秘我国自主水下机器人“潜龙二号”
  7. 卸载、Jlink驱动不成功,提示“could not open INSTALL.LOG file” 解决办法
  8. 概率论中常见分布的数学期望、方差及特征函数推导 (一)离散型随机变量
  9. 联发科毫米波雷达解决方案芯片MT2706(Autus R10)
  10. Ubuntu测试使用速腾RS-Lidar-16
  11. 斯坦福cs231n作业数据集下载
  12. java学习之LinkedList(链表)
  13. 2008年不可错过的50部好莱坞电影
  14. 【078】比才歌剧《卡门》序曲
  15. colab上传压缩文件并解压
  16. java基础----数据类型
  17. 远控免杀专题(12)-Green-Hat-Suite免杀(VT免杀率23/70)
  18. Nepxion Discovery【探索】微服务企业级解决方案
  19. 【树莓派】关于树莓派2代,更新最新内核后,DS18B20温度传感器无法找到对应文件的问题的解决
  20. 四川途志:抖音直播带货什么产品最好卖?

热门文章

  1. python D40 以及多表查询
  2. Kubernetes 架构(上)- 每天5分钟玩转 Docker 容器技术(120)
  3. PHP如何快速读取大文件
  4. 使用虚拟按钮(Ghost Buttons)的25个网站
  5. Android笔记:invalidate()和postInvalidate() 的区别及使用(转载)
  6. 给GridView分页
  7. 使用 Anthem.NET 的常见回调(Callback)处理方式小结[转]
  8. java和c的反汇编_JAVAP -C反汇编指令的学习(转载)
  9. 硬盘损坏如何恢oracle,硬盘物理损坏,如何恢复数据库?
  10. win10搭建java开发环境_如何在WIN10搭建Java开发环境