每个Python开发人员应该拥有的6个实用技巧( 二 )


for rating in ratings_count.most_common(3):
print("{}: {} occurences".format(*rating))
想要在国立总统府工作吗?他们正在寻找Python开发人员 。
4.列举有时 , 您希望在遍历列表时保持项目计数 。 假设您有一个客户名列表 , 并且想要列出他们及其索引号 。 这是一种实现方法:
for i in range(len(customers)):
print("{}: {}".format(i+1, customers[i]))
【每个Python开发人员应该拥有的6个实用技巧】这将产生类似于以下内容的输出:
1:萨曼莎(Samantha)
2:玛拉
3:埃里克
4:詹姆斯
5:乔治
6:托尼
7:玛格丽特
8:史蒂文
尽管此代码有效 , 但它不是很好 。 注意索引和计数器之间的不匹配吗?幸运的是 , Python有一个enumerate()函数 , 使您的索引跟踪代码更容易理解和令人赏心悦目 。 enumerate()接受两个参数 , 要枚举的列表和计数器的起始编号 , 并在循环的每一轮给出两个输出 , 即计数器值和列表项 。 这是用enume解决相同问题的方法 。
for i, customer in enumerate(customers, 1):
print("{}: {}".format(i, customer))
好多了 。
5.参数扩展假设您有一个处理学生信息的功能:
def process_student_info(first_name, last_name, fav_topic, score):
print(first_name, last_name, fav_topic, score)
在许多情况下 , 要传递给函数的值包含在从数据库或文本文件填充的列表或字典对象中 。 在这种情况下 , 调用该函数会比较麻烦:
process_student_info(student[0], student[1], student[2], student[3])
幸运的是 , Python的“参数扩展”功能使您可以将整个列表直接传递给函数 。 通过在列表名称的开头添加* , 可以将其扩展为各个值 , 然后再将其提交给函数 。
process_student_info(*student)
只要列表中的参数数量及其顺序与目标函数的参数相似 , 就可以使用列表进行参数扩展 。 如果不匹配 , 则会引发错误 。
每个Python开发人员应该拥有的6个实用技巧文章插图
您还可以对字典使用参数扩展 , 在这种情况下 , 值得顺序无关紧要 。 您只需要具有与功能参数相对应的键即可 。 字典的参数扩展需要在对象之前使用**运算符 。
student = {'last_name': 'doe', 'score': 89, 'first_name': 'john', 'fav_topic': 'calculus'}
process_student_info(**student)
使用字典扩展的好处之一是 , 如果您的函数具有默认参数 , 则在字典中省略它们不会引发错误 。
6.类型注释Python是一种动态类型的语言 , 这意味着如果您尝试混合具有不同数据类型的变量 , 它通常会找到一种解决差异的方法 , 或者如果无法解决 , 则会引发异常 。 但是这种灵活性也可能导致不可预测的行为 。
假设您有一个将两个变量相乘的函数 。
def mul(a, b):
return a * b
如果您在两个整数或浮点数上调用mul()-函数的预期用途-结果是可预测的 。
a = 5
b = 6
print(mul(a, b))
输出:30
但是 , 如果您的变量之一是列表怎么办?
a = [1, 2, 4, 5]
b = 3
print(mul(a, b))
输出:[1、2、4、5、1、2、4、5、1、2、4、5]
该函数创建一个列表 , 该列表是该列表的三个串联副本 。 这显然不是您想要执行的操作 。 Python 3.6和更高版本提供了“类型注释” , 该功能使您能够定义每个函数参数应采用的数据类型 。 这是带有类型注释的mul()函数的外观 。
def mul(a: int, b: int):
return a * b
此格式明确指出mul()采用两个整数值 。 明确地说 , 类型注释不会阻止您以意外方式使用该功能 。 但是仍然有一些充分的理由使用它 。
首先 , 定义数据类型是一种文档形式 , 使其他开发人员更轻松地遍历代码以了解函数中期望的数据类型(比较函数的带注释和未带注释的版本) 。
但更重要的是 , 一些代码编辑器处理类型注释 , 并通过自动完成和类型错误等功能为您提供帮助 。
每个Python开发人员应该拥有的6个实用技巧文章插图
Spyder IDE的屏幕快照 , 显示键入变量的自动完成功能 。
总结这是我最喜欢的Python技巧中的六个 。 使用它们将使您的代码简洁明了 。 随着Python在许多领域和机构中迅速成为事实上的编程语言 , 拥有一套良好的最佳实践将确保您可以成为开发团队中富有成效的成员 。