最简单的列表生成式
l = [x for x in range(10)]
print(l)
# 相当于
l = []
for x in range(10):
l.append(x)
print(l)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
使用运算式的列表生成式
l = [x * x for x in range(10)]
print(l)
# 相当于
l = []
for x in range(10):
l.append(x * x)
print(l)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
使用两层循环的列表生成式
l = [str(i)+str(j) for i in range(3) for j in range(3)]
print(l)
# 相当于
l = []
for i in range(3):
for j in range(3):
l.append(str(i)+str(j))
print(l)
['00', '01', '02', '10', '11', '12', '20', '21', '22']
['00', '01', '02', '10', '11', '12', '20', '21', '22']
筛选生成的列表
l = [x for x in range(10) if x%2 == 0]
print(l)
# 相当于
l = []
for x in range(10):
if x%2 == 0:
l.append(x)
print(l)
[0, 2, 4, 6, 8]
[0, 2, 4, 6, 8]
if-else语句
l = [x if x%2 ==0 else 0 for x in range(10)]
print(l)
# 相当于
l = []
for x in range(10):
if x%2 == 0:
l.append(x)
else:
l.append(0)
print(l)
[0, 0, 2, 0, 4, 0, 6, 0, 8, 0]
[0, 0, 2, 0, 4, 0, 6, 0, 8, 0]