Python将三个列表压缩为if,列表中的if语法无效

时间:2019-02-27 07:47:13

标签: python list list-comprehension

我想使用一个单行表达式创建一个列表列表,其中包含来自其他三个列表的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”的“无效语法”。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

您将条件放置在错误的位置。理解力到此为止。

my_list = [[a,b,c] for a,b,c in zip(a,b,c) if a in check]