提高Python的可读性
文章插图
> Photo by Samantha Gades on Unsplash
许多人刚开始学习编程时会选择Python 。Python确实是初学者友好的 。当您按照其官方网站上的下载和安装说明进行操作时,很快就可以编写” Hello World”程序 。
当您了解更多关于Python的知识时,您可能会着迷于它使用不同方法实现相同功能的灵活性 。但是,迟早您会发现某些解决方案比其他解决方案更简洁 。更重要的是,从长远来看,更简洁的代码往往更易于阅读和维护 。
当然,有很多方法可以用Python编写简洁的代码 。在本文中,我想分享五个技巧,这些技巧在日常Python项目中特别有用 。为了说明为什么这些技巧可以提供更简洁的解决方案,在每个部分中,为了比较目的,我都会提供替代的,通常更长的解决方案 。
1.列表,字典和集合理解列表理解是许多Python程序员最喜欢的功能之一 。这是从迭代器创建列表对象的非常简洁的方法 。基本语法为[可迭代的x表达式] 。让我们看一些示例以了解其用法 。
如您所见,在不使用列表推导的情况下,我们必须创建一个空列表,并通过运行for循环来添加每个数字的平方,这需要三行代码 。相比之下,我们只使用一行代码就可以通过列表理解来构建相同的正方形列表 。那不是很酷吗?
除了列表理解之外,还有字典和集合理解 。字典理解具有以下基本语法{key_expr:用于iterable中的x的value_expr},而对于集合理解,其基本语法是{用于x中的iterable的表达式} 。让我们在下面看一些简单的例子 。与列表理解示例类似,将花费多行代码来构建所需的字典并进行设置,而无需使用理解技术 。
2.将元组命名为数据结构我们知道元组对于存储一些相关数据很有用 。但是,使用它们并不是很方便,尤其是在访问特定元素方面,因为我们必须记住顺序并使用特定元素的正确索引 。
尽管如果不想使用元组,我们可以建立一个自定义类来管理相关数据,但是namedtuple数据类型可以是非常有用的轻量级数据结构 。通过集合模块可用,namedtuple数据类型采用以下基本语法:namedtuple(Typename,field_names) 。语法虽然不太简单,但实际上从概念上很容易理解 。
让我们看一些相关的例子 。理想的功能是创建一个数据结构,该结构可以存储学生的信息,包括姓名,性别和学生ID号码 。
如您所知,使用namedtuple,我们可以使用更简洁的代码编写轻量级的数据结构 。当然,应该注意,自定义类为您提供了可以操纵的更多功能 。但是,如果您的目的只是创建用于数据存储和检索目的的数据结构,则绝对可以考虑使用namedtuple 。
3.使用enumerate()和zip()进行迭代编码的一项重要原则是DRY,它代表”不要重复自己” 。当我们处理一系列数据(例如数字列表)时,这是一项常见的任务,我们需要对列表中的每个数字执行相同的操作 。为了避免重复相同的代码,我们可以使用for循环来运行整个列表的迭代 。
当我们迭代列表或任何序列时,有时我们还需要知道项目在序列中的位置 。有两种方法可以做到这一点 。让我们看看它们是什么 。
如您所见,通过使用内置函数enumerate(),我们可以轻松地访问序列中的索引和元素,这比第一次迭代更简洁 。更重要的是,它可以设置一个起始数字进行计数 。在上面的示例中,我们将其设置为1 。
除了enumerate()函数外,zip()函数在迭代中也很有用 。此函数能够从多个可迭代对象创建元组,而无需显式创建这些可迭代对象的复合可迭代对象 。听起来有些混乱,但是我们可以在下面的示例中看到它的用法 。
基本上,zip()函数的作用是在每次迭代中从可迭代对象中获取每个元素,以依次形成一个元组 。该代码比冗长的代码更简洁,可读性更好,不是吗?
4.使用f字符串格式化字符串字符串是一种基本的数据类型,我们几乎在任何地方都使用它们 。字符串的一项基本应用是将它们以某种格式使用 。有几种格式化字符串的方法,为此,我想介绍一下f字符串 。
简而言之,f字符串是内插的字符串文字,使用字母f(或F)作为字符串文字的前缀 。为了编写简洁的代码,我将仅向您展示两个首选f字符串的用例 。
· 显示变量 。最基本的用法是显示一些变量的值,以便在开发过程中进行调试 。如果使用传统的format()方法,则需要更长的时间 。
· 连接变量/连接字符串 。f字符串不是直接使用+符号和字符串的join()方法,而是用于字符串串联的非常简单的方法,并且具有最佳的可读性 。实际用途包括构造文件路径,如下例所示 。
- 凯美瑞多久更换三元催化器
- 22款逍客变速箱油多久更换一次
- 京东店铺更换类目吗 京东类目可以改吗
- 微信实名认证不是本人怎么改 微信如何更改实名认证
- 22款逍客刹车片多久更换一次
- 汉兰达防冻液多长时间更换一次
- 途观刹车油多久更换一次
- 途观防冻液多长时间更换一次
- 途观多久更换制冷剂
- 淘宝卖家客服名字怎么改 淘宝店铺如何更改客服名字