提问人:Prectux 提问时间:10/31/2023 更新时间:10/31/2023 访问量:67
如果 else 在列表推导式 python 中使用“not in”
If else use "not in" in list comprehension python
问:
我想了解如果我使用以下代码,为什么这种公式会起作用的动机:
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))]
谁能告诉我错误在哪里? 谢谢
答:
2赞
chepner
10/31/2023
#1
条件表达式始终需要“if”部分和“else”部分:
V1 if C else V2
在代码中,您使用了另一个条件表达式 ,但省略了该部分。V2
else
V1 if C1 else (V2 if C2 else V3)
(括号可能会被删除,但为了清楚起见,我在这里使用了它们。您的代码读取 ,缺少 。如果 和 都为 false,则必须指定要使用的值。V1 if C1 else V2 if C2
else V3
C1
C2
此外,不要将列表推导的筛选器部分与条件表达式混淆。除了关键字的共同使用之外,它们几乎没有共同点。if
评论
0赞
Prectux
10/31/2023
问题是没有第三种选择
1赞
chepner
10/31/2023
如果没有第三个选项,则不能使用条件表达式。对于生成器中未被 final 子句过滤的每个值,列表推导式必须有要添加到列表中的内容。if
0赞
Prectux
10/31/2023
chepner 好的,谢谢,现在我明白了
评论
..if..else..
else