复杂的列表理解语法



只是想知道是否可以用行理解来写这个,如果可以,如何写。

lst1 = [0,1,2,3,4,5,6,7,8,9,10]
lst2 = [[0,4],[1,5],[2,6],[3,7]]
list3 = []
list4 = []
list5 = []
for l in lst1:
for k in lst2:
if l == k[0]:
list3.append(k)
elif l==k[1]:
list4.append(k)
else:
list5.append(l)

print('lst1',lst1)
print('lst2',lst2)
print('list3',list3)
print('list4',list4)
print('list5',list5)

通常可以通过使用相同顺序的完全相同的for ... in语句,将构建列表的嵌套for循环转换为列表理解:

list3 = [k for l in lst1 for k in lst2 if l == k[0]]
list4 = [k for l in lst1 for k in lst2 if l == k[1]]
list5 = [l for l in lst1 for k in lst2 if l not in k]

最新更新