Python 列表推导式


我们可以使用给定的 Python 序列创建新的序列。这被称为推导式。它基本上是一种编写简洁的代码块来生成序列的方法,该序列可以使用另一个序列生成列表、字典、集合或生成器。它可能涉及不同类型序列之间多个步骤的转换。

列表推导式

在这种方法中,我们通过操作现有列表的值来创建一个新列表。在下面的示例中,我们获取一个列表,并通过向给定列表的每个元素添加 3 来创建一个新列表。

示例

given_list = [x for x in range(5)]
print(given_list)

new_list = [var+3 for var in given_list]

print(new_list)

输出

运行以上代码将得到以下结果:

[0, 1, 2, 3, 4]
[3, 4, 5, 6, 7]

字典推导式

类似于上面,我们可以获取一个列表并从中创建一个字典。

示例

given_list = [x for x in range(5)]
print(given_list)

#new_list = [var+3 for var in given_list]
new_dict = {var:var + 3 for var in given_list }

print(new_dict)

输出

运行以上代码将得到以下结果:

[0, 1, 2, 3, 4]
{0: 3, 1: 4, 2: 5, 3: 6, 4: 7}

我们还可以获取两个列表并从中创建一个新的字典。

示例

list1 = [x for x in range(5)]
list2 = ['Mon','Tue','Wed','Thu','Fri']
print(list1)
print(list2)

new_dict ={key:value for (key, value) in zip(list1, list2)}

print(new_dict)

输出

运行以上代码将得到以下结果:

[0, 1, 2, 3, 4]
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
{0: 'Mon', 1: 'Tue', 2: 'Wed', 3: 'Thu', 4: 'Fri'}

集合推导式

我们可以采用与上面类似的方法,并从现有的集合或列表中创建一个新的集合。在下面的示例中,我们通过向现有集合的元素添加 3 来创建一个新的集合。

示例

given_set = {x for x in range(5)}
print(given_set)

new_set = {var+3 for var in given_set}

print(new_set)

输出

运行以上代码将得到以下结果:

{0, 1, 2, 3, 4}
{3, 4, 5, 6, 7}

生成器推导式

可以从现有列表创建新的生成器。这些生成器在内存方面效率很高,因为它们是在生成项目时分配内存,而不是在开始时分配内存。

示例

given_list = [x for x in range(5)]
print(given_list)

new_set = (var+3 for var in given_list)

for var1 in new_set:
   print(var1, end=" ")

输出

运行以上代码将得到以下结果:

[0, 1, 2, 3, 4]
3 4 5 6 7

更新于: 2019年10月17日

3K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.