我有一个名为inventory []的列表或数组,它在任何给定时间最多有15个条目。我需要测试这些条目是否等于零,如果任何一个条目等于零,请执行一些操作。什么是有效的方式做到这一点没有做Python 3测试列表中的一系列项目
if inventory[0] == 0 or inventory[1] == 0 or inventory[2] == 0...
等?
我有一个名为inventory []的列表或数组,它在任何给定时间最多有15个条目。我需要测试这些条目是否等于零,如果任何一个条目等于零,请执行一些操作。什么是有效的方式做到这一点没有做Python 3测试列表中的一系列项目
if inventory[0] == 0 or inventory[1] == 0 or inventory[2] == 0...
等?
Python的内置any()
函数是完美的。如果任何元素为真(非伪造),则需要可迭代的参数并返回True
。
if any(item == 0 for item in inventory):
# do something
也有类似的功能叫做all()
,将返回True
如果所有元素都是如此。
,为您简单的情况下,我想你可能只是这样做:
if 0 in inventory:
# do something
对于这种类型的薄更普遍的情况下g,您可以使用any
函数(docs)。
if any([item == 0 for item in inventory]):
# do something
+1'库存中的if 0'。有时候会忘记更简单的事情:) – 2012-01-05 00:40:12
尝试了这一点:
inventory=[1,2,3,4,0]
if 0 in inventory:
print "There is 0 in the list"
输出: 有0列表
“测试,如果这些条目是等于零,如果任何一个条目等于零,做点什么。“令人困惑。 “任何这些条目”和“任何一个条目”之间有什么区别?做什么事情 - 一般情况下,或者特别是某个/某些/全部为零的项目,您需要知道列表中零条目的位置(索引)? – 2012-01-05 00:49:44