list comprehension不返回空列表

时间:2016-10-18 12:06:02

标签: python list conditional-statements list-comprehension

我试图找到相关的问题,但却无法创建新的问题。 我的程序根据简单的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成为[]

2 个答案:

答案 0 :(得分:5)

 1%2 == 1

所以你的条件是:temp % 2 != 0True,因此它包含在列表中。如果您想要一个空列表,则应更改它temp % 2 == 0

答案 1 :(得分:3)

如果您不确定发生了什么。你的清单理解:

 Newone = [ temp for temp in Oldone if temp % 2 != 0 ]

装置;在我的新列表Newone中输入我现有列表temp中的所有Oldone值,这些值满足条件temp % 2 != 0(基本上只保留奇数,因为余数为1,每当奇数除以2)