列表推导式
目的:用一种简明的方法来创建列表
主要结构:
[变量 for 变量 in iterable(可迭代对象)]
例如:
[i for i in range(0, 100)]
代码示例:
In [1]:list_1 = [x for x in range(1, 10)]
list_1
Out[1]:[1, 2, 3, 4, 5, 6, 7, 8, 9]
In [2]:list_2 = [x*x for x in range(1, 10)]
list_2
Out[2]:[1, 4, 9, 16, 25, 36, 49, 64, 81]
In [3]:list_3 = [x for x in range(1, 10) if x % 2 ]
list_3
Out[3]:[1, 3, 5, 7, 9]
In [3]:list_4 = [x*x for x in range(1, 10) if x % 2 == 0]
list_4
Out[3]:[4, 16, 36, 64]
# 常规写法
In [4]:list_5 = [[1,2,3],[4,5,6],[7,8,9]]
list_6 = []
for y in list_5:
for x in y:
if x % 2 == 0:
list_6.append(x)
list_6
Out[4]:[2, 4, 6, 8]
# 列表推导式
In [5]:list_5 = [[1,2,3],[4,5,6],[7,8,9]]
list_6 = [x for y in list_5 for x in y if x % 2 == 0]
list_6
Out[5]:[2, 4, 6, 8]
这种方法很炫酷,但是较难操作,因此使用时一定要注意细节