打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
学Python必知的20个技巧,掌握它们,准没错

20 useful Python tips and tricks you should know. 以下为译文,旨在帮助同学们更好地学习和应用Python。

Python作为当下较为流行的通用编程语言,主要用于数据科学和机器学习、许多领域的科学计算、后端网络开发、移动和桌面应用等。哪些知名企业在Python:Google, Dropbox, Facebook, Mozilla, IBM, Quora, Amazon, Spotify, NASA, Netflix, Reddit等等。

Python不仅免费、开源,它还有一个由程序员和其他用户组成的庞大、专注、友好的社区。

Python在设计上坚持清晰化一的风格,语法设计上更是侧重于简单、可读和优雅。Python的作者有意的设计限制性很强的语法,使得不好的编程习惯都不能通过编译。其中很重要的一项就是Python的缩进规则。本文介绍20个你可能用到的Python技巧和窍门。

01 Python之禅

“Python 之禅”又称PEP 20,是用Tim Peters编写的一个小文本,代表了设计和使用Python的指导原则。你可以在Python网站上找到这个文本,也可以在终端(控制台)或Jupyter notebook中用一条语句获取它:

02 链式赋值

如果需要多个变量引用同一个对象,可以使用链式赋值:

是不是很符合逻辑,又很优雅呢?

03 链式比较

通过链接比较运算符,可以将多个比较合并到一个Python表达式中。如果所有的比较都正确或错误,该表达式将返回true,否则返回false:

这类似于(2 < x)和(x ≤ 8)和(6 < x)和(x ≤ 8),但更紧凑,只需对x进行一次评估。

要知道这种编码形式可是合法的:

你还可以链接两个以上的比较:

04 多重赋值

你可以使用元组解包在一条语句中分配多个变量:

请注意,第一条语句中的2,4,8等同于元组(2,4,8)。

05 更高级的多重赋值

要知道Python能做到的远不止普通的多重赋值。赋值的左侧和右侧不需要相同数量的元素:

这种情况下,x取第一个值(2 ),因为它是第一个出现的。z是最后一个,取最后一个值(8)。y取列表中的所有其他值,因为它有星号(*y)。

06 交换变量

你可以在应用多个赋值时以简洁优雅的方式交换任意两个变量,而无需引入第三个变量:

07 合并字典

合并两个或更多字典的方法便是将它们放到一个新的字典中:

08 连接字符串

如果需要连接多个字符串,最终在它们之间有相同的字符或字符组,可以使用str.join()方法:

09 高级遍历

如果你想要遍历一个序列,并且需要序列元素和相应的索引,那么应该可以使用enumerate:

在每次遍历中,你将获得一个元组,其中包含序列的索引和相应元素。

10 反向遍历

若想反向遍历序列,可以使用reversed:

11 元素聚合

如果要从几个序列中聚合元素,应该使用zip:

可以通过遍历获得zip对象,或者将其转换为列表或元组。

12 矩阵转置

虽然在处理矩阵时通常会使用numpy(或类似的库),但是使用zip同样可以实现矩阵的转置:

13 唯一值

如果元素的顺序不重要,想从列表中删除重复项,可以通过将其转换为集合来获得唯一值:

14 序列排序

默认情况下,序列按其第一个元素排序:

但是,如果要根据第二个(或其他)元素对它们进行排序,可以使用key键和适当的lambda函数作为相应的参数:

如果想获得相反的顺序,也可以使用相同的方法:

15 字典排序

可以使用类似的方法对获得的字典的键值元组进行排序。items()方法:

他们是根据键排序的。如果希望根据它们的值排序,则应该指定对应于key的参数,并最终反转:

16 格式化raw字符串

PEP 498和Python 3.6引入“格式化字符串”(f字符串)。你可以在这样的字符串中嵌入表达式。要知道字符串可以直接用作raw字符串和格式化字符串使用,只需加上两个前缀:fr。

17 获取当前日期和时间

Python有一个内置的模块datetime,可用于处理日期和时间。一种方法便是now(),返回当前日期和时间:

18 获取最大/最小元素的索引

Python并未提供直接获取列表或元组中最大或最小元素索引的函数。幸运的是,有两种优雅的方法可以做到这一点:

如果有两个或多个元素具有最大值,此方法将返回最后一个元素的索引:

如果想获取第一次出现的索引,需要稍微更改一下前面的语句:

另一种方法可能更优雅呦!

要找到最小元素的索引,请使用函数min,记得不是max。

19 获得笛卡尔积

内置模块itertools提供了许多潜在有用的类。其中product函数便可用于获得笛卡尔乘积:

20 矩阵乘法操作符

PEP 465和Python 3.5引入了用于矩阵乘法的专用运算符@。可以使用matmul、rmatmul和imatmul方法为你的类实现它。要知道使用该操作符进行向量或矩阵相乘非常优雅:

总结

你虽然已经看到20条Python技巧和窍门,让代码变得有趣而优雅。但还有很多其他语言特征值得去探索。

Happy coding!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python基础知识汇总(避坑)
UC头条:清华毕业大佬整理的Python基础22大知识点, 自备热水, 这货有点干
5. 数据结构
如何优雅高效地使用Python——这些Python技巧你必须学会!
Python知识点大全(非常详细)
学习python第三课:循环语句、列表元组笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服