Python 3 测试列表中的多个项
我有一个叫做 inventory[] 的列表,或者说数组,它最多可以有十五个条目。现在我需要检查这些条目中有没有等于零的,如果有任何一个条目是零,就要执行某个操作。有没有什么简单有效的方法来做到这一点,而不是像下面这样
if inventory[0] == 0 or inventory[1] == 0 or inventory[2] == 0...
等等?
4 个回答
0
试试这个:
inventory=[1,2,3,4,0]
if 0 in inventory:
print "There is 0 in the list"
输出结果: 列表中有0
2
Python内置的any()
函数非常适合这个用途。它接受一个可迭代的对象作为参数,如果其中任何一个元素为真(也就是不是假值),就会返回True
。
if any(item == 0 for item in inventory):
# do something
还有一个类似的函数叫做all()
,如果所有元素都为真,它会返回True
。
5
对于你这个简单的情况,我觉得你可以这样做:
if 0 in inventory:
# do something
如果你想处理更一般的情况,可以使用 any
这个函数(文档链接)。
if any([item == 0 for item in inventory]):
# do something