我试图找到相关的问题,但却无法创建新的问题。 我的程序根据简单的if条件使用python中的list comprehension创建一个新列表。
Newone = [ temp for temp in Oldone if temp % 2 != 0 ]
它工作正常但在某些情况下它不起作用。例如这一个
Oldone = [1]
Newone = [ temp for temp in Oldone if temp % 2 != 0 ]
这会返回[1],但我期待Newone成为[]
答案 0 :(得分:5)
1%2 == 1
所以你的条件是:temp % 2 != 0
是True
,因此它包含在列表中。如果您想要一个空列表,则应更改它temp % 2 == 0
。
答案 1 :(得分:3)
如果您不确定发生了什么。你的清单理解:
Newone = [ temp for temp in Oldone if temp % 2 != 0 ]
装置;在我的新列表Newone
中输入我现有列表temp
中的所有Oldone
值,这些值满足条件temp % 2 != 0
(基本上只保留奇数,因为余数为1,每当奇数除以2)