我有一个清单,让我们说:
test = [False, False, 2, False, False, False, 3, False, False]
Run Code Online (Sandbox Code Playgroud)
并且我想将此列表的每个成员分配给False,除非此成员等于2,因此结果应为:
test = [False, False, 2, False, False, False, False, False, False]
Run Code Online (Sandbox Code Playgroud)
我试过了 :
test = [False for i in test if i !=2]
Run Code Online (Sandbox Code Playgroud)
但结果是:
[False, False, False, False, False, False, False, False]
Run Code Online (Sandbox Code Playgroud)
我尝试定义一个函数:
def set_False(lst):
for i in lst:
if i != 2:
i = False
return lst
Run Code Online (Sandbox Code Playgroud)
当我申请时:
test = set_False(test)
Run Code Online (Sandbox Code Playgroud)
结果是:
[False, False, 2, False, False, False, 3, False, False]
Run Code Online (Sandbox Code Playgroud)
我不能在我放置代码的环境中使用枚举,所以有什么建议吗?
谢谢
Sil*_*ost 11
它的
[False if i !=2 else 2 for i in test]
Run Code Online (Sandbox Code Playgroud)
否则,当它等于2时,你正在跳过整个元素.