如果我使用这段代码,我想了解这种公式起作用的动机:
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))]
谁能告诉我错误出在哪里? 谢谢
条件表达式总是需要“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
关键字之外,它们几乎没有任何共同点。