python 列表解析式
1,格式
2,单变量列表解析
3,多变量列表解析
1,格式
列表解析式 list comprehension
简单版本
[ expression for i in iterable ]
[ expression for i in iterable if… for j in iterable if…]
[ expression for i in iterable for j in iterable if…if… ]
expression : 输出的结果
for i in iterable :需要迭代的对象
if… : 需要过滤的条件
2,单变量列表解析
#打印0-5的数字,将每个值添加到列表中
lists=[]
for i in range(6):
lists.append(i)
print(lists)
#使用列表解析式来进行打印
#[ expression for i in iterable ] #列表解析式的格式
print([i for i in range(6)])
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5]
#打印0-5的数字,将大于等于3的值打印,将每个值添加到列表中
lists=[]
for i in range(6):
if i >=3:
lists.append(i)
print(lists)
#使用列表解析式来进行打印
#[ expression for i in iterable if ...] #列表解析式的格式
print([i for i in range(6) if i>=3])
[3, 4, 5]
[3, 4, 5]
3,多变量列表解析
#答应列表组合,将每个值添加到列表中
lists=[]
for x in range(3):
for y in range(3):
lists.append([x,y])
print(lists)
#使用列表解析式来进行打印
#[ expression for i in iterable if ...] #列表解析式的格式
print([[x,y] for x in range(3) for y in range(3)])
[[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
[[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
#打印列表组合,将第二个大于等于2的值打印,将每个值添加到列表中
lists=[]
for x in range(3):
for y in range(3):
if y>=2:
lists.append([x,y])
print(lists)
#使用列表解析式来进行打印
#[ expression for i in iterable if ...] #列表解析式的格式
print([[x,y] for x in range(3) for y in range(3) if y>=2])
print([[x,y] for x in range(3) for y in range(3) if y>=2 if x>=2])
[[0, 2], [1, 2], [2, 2]]
[[0, 2], [1, 2], [2, 2]]
[[2, 2]]