2024-04-27 01:09:41 发布
网友
我试图找到相关的问题,但找不到这样一个新的问题。 我的程序使用python中的list comprehension按照一个简单的if条件创建一个新列表。在
Newone = [ temp for temp in Oldone if temp % 2 != 0 ]
它工作得很好,但在某些情况下它不起作用。例如这个
这将返回[1],但我希望Newone为[]
如果你不确定发生了什么事。你的清单理解:
意思是:在我的新列表中放入Newone所有来自现有列表Oldone的值,它们满足条件temp % 2 != 0(本质上只保留奇数,因为余数是1,每当奇数除以2时)
Newone
Oldone
temp % 2 != 0
1%2 == 1
所以您的条件:temp % 2 != 0是True,因此它包含在列表中。如果你想要一个空列表,你应该把它改成temp % 2 == 0。在
True
temp % 2 == 0
如果你不确定发生了什么事。你的清单理解:
意思是:在我的新列表中放入
Newone
所有来自现有列表Oldone
的值,它们满足条件temp % 2 != 0
(本质上只保留奇数,因为余数是1,每当奇数除以2时)所以您的条件:
temp % 2 != 0
是True
,因此它包含在列表中。如果你想要一个空列表,你应该把它改成temp % 2 == 0
。在相关问题 更多 >
编程相关推荐