我想使用一个单行表达式创建一个列表列表,其中包含来自其他三个列表的if条件。我为此使用zip方法。效果很好,只是没有一行。
check = [3,2]
a = [1,2,3,4]
b = [5,6,7,8]
c = [9,10,11,12]
# working
my_list = []
for a,b,c in zip(a,b,c):
if a in check:
my_list.append( [a,b,c] )
# not working
# my_list = [ [a,b,c] if a in check for a,b,c in zip(a,b,c) ]
print(my_list)
输出
[[2, 6, 10], [3, 7, 11]]
我在单行表达式中的for关键字之后得到“ a:list”的“无效语法”。我错过了什么吗?
答案 0 :(得分:1)
您将条件放置在错误的位置。理解力到此为止。
my_list = [[a,b,c] for a,b,c in zip(a,b,c) if a in check]