4 个 Python 推导式开发技巧

什么是列表推导式?

列表推导式List Comprehension是创建列表的一种优雅且最符合python语言的方法。与for循环和if语句相比,列表推导式在基于现有列表的值创建新列表时语法要短得多。因此,让我们看看该特性如何获得列表的副本。

列表推导式用法

1.复制列表

有时需要创建现有列表的副本。最简单的答案是.copy(),它允许您将一个列表的内容复制到另一个(新)列表。

original_list = [10,11,20,22,30,34]
duplicated_list = original_list.copy()
# 下面使用列表推导式
duplicated_list = [item for item in original_list]

2.列表中的元素相乘

最简单或直接的乘法方法是使用乘法运算符,即*

例如,想用一个标量(即数字5)乘以列表中的每一项。这里肯定不能使用original_list*5,因为它将创建列表的5个副本。

在这个场景中,最好的答案是列表推导式,如下所示。

图片[1] - 4 个 Python 推导式开发技巧 - 三酷猫笔记

这里的操作并不局限乘以一个数字。可以对原始列表的每个元素执行复杂的操作。

3.删除列表中的元素

根据特定条件筛选数据是选择所需数据集的常见任务之一,同样的逻辑也用于列表推导式中。

假设你有下面提到的数字列表。

original_list = [10, 22, -43, 0, 34, -11, -12, -0.1, 1]

你想要从这个列表中只保留正值。因此,从逻辑上讲,您希望只保留那些对条件项> 0求值为TRUE的项。

new_list = [item for item in original_list if item > 0]  # Output [10, 22, 34, 1]

if子句用来删除负值。可以使用if子句应用任何条件来从列表中删除任何项。

4.使用dict()将两个列表转换为字典键值对

有时需要从两个列表中的值创建字典。你可以使用字典推导式(dictionary comprehension) ,而不是一个一个地输入,这是创建字典的一种优雅而简洁的方法!

它的工作原理与列表推导式完全相似,唯一的区别是——创建一个列表推导式时,你将所有内容都包含在方括号中,例如[],而在字典推导式中,你将所有内容都包含在花括号中,例如{}。

假设有两个列表—字段和详细信息—如下所示。

fields = [‘name’, ‘country’, ‘age’, ‘gender’] 
details = [‘pablo’, ‘Mexico’, 30, ‘Male’]

一个简单的方法是使用像这样的字典推导式:

 new_dict = {key: value for key, value in zip(fields, details)}  
# Output {'name': 'pablo', 'country': 'Mexico', 'age': 30, 'gender': 'Male'}
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享