列表理解不返回空lis

2024-04-27 01:09:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到相关的问题,但找不到这样一个新的问题。 我的程序使用python中的list comprehension按照一个简单的if条件创建一个新列表。在

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

它工作得很好,但在某些情况下它不起作用。例如这个

^{pr2}$

这将返回[1],但我希望Newone为[]


Tags: in程序列表forif情况条件temp
2条回答

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

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

意思是:在我的新列表中放入Newone所有来自现有列表Oldone的值,它们满足条件temp % 2 != 0(本质上只保留奇数,因为余数是1,每当奇数除以2时)

 1%2 == 1

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

相关问题 更多 >