列表推导
2022-06-09 本文已影响0人
朱兰Juran
列表推导
列表推导是遵循简单规则快速创建内容列表很有用的方法。
已知有一个包含5个整数的列表list,创建一个新列表cubes,该列表中每个元素为list列表中每个元素的立方,如下所示。
list = range(5)
cubes = []
for num in list:
cubes.append(num ** 3)
print(cubes)
在上例中,通过for循环遍历list中的每一个元素并计算出立方值,然后将立方值添加到列表cubes中。
在Python中可以使用更简单的方法实现上述功能,如下所示。
cubes = [i**3 for i in range(5)]
print(cubes)
结果:
[0, 1, 8, 27, 64]
列表推导- if 语句
列表推导还可以包含一个 if 语句生成列表中的值。语法格式如下
[表达式1 for k in L if 表达式2 ]
相当于:
List = []
for k in L:
if 表达式2:
List.append(表达式1)
其中,List的元素由每一个“表达式1”组成,if语句用于过滤,可以省略。接下来我们看一个实例来说明:
evens=[i**2 for i in range(10) if i**2 % 2 == 0]
print(evens)
结果:
[0, 4, 16, 36, 64]
列表推导-MemoryError
试图使用一个非常巨大的 range 创建一个列表将导致一个 MemoryError 。
此代码显示列表耗尽内存的示例。
even = [2*i for i in range(10**100)]
结果:
MemoryError