如果否则在列表理解Python中使用“not in”

问题描述 投票:0回答:1

如果我使用这段代码,我想了解这种公式起作用的动机:

a = [2,4,6,8]
b = [2,5,6,9]

list_same = [a[i] for i in range(len(a)) if a[i] in b]
list_dif = [b[i] for i in range(len(a)) if b[i] not in a] 
list_dif1 = [lista_dif.append(a[i]) for i in range(len(a)) if a[i] not in b]

如果我使用其他代码则不起作用:

list_dif = [b[i] if b[i] not in a 
                else a[i] if a[i] not in b
                for i in range(len(a))]

谁能告诉我错误出在哪里? 谢谢

python list list-comprehension
1个回答
0
投票

条件表达式总是需要“if”部分和“else”部分:

V1 if C else V2

在您的代码中,您对

V2
使用另一个条件表达式,但省略了
else
部分。

V1 if C1 else (V2 if C2 else V3)

(括号可能会被删除,但为了清楚起见,我在这里使用了它们。您的代码显示为

V1 if C1 else V2 if C2
,缺少
else V3
。)如果
C1
C2
都为 false,则必须指定要使用的值。

此外,不要将列表理解的过滤部分与条件表达式混淆。除了共同使用

if
关键字之外,它们几乎没有任何共同点。

© www.soinside.com 2019 - 2024. All rights reserved.