Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3测试列表中的一系列项_Python_Arrays_List_If Statement - Fatal编程技术网

Python3测试列表中的一系列项

Python3测试列表中的一系列项,python,arrays,list,if-statement,Python,Arrays,List,If Statement,我有一个名为inventory[]的列表或数组,它在任何给定时间最多有15个条目。我需要测试这些条目中是否有一个等于零,如果有一个条目等于零,请做些什么。不这样做的有效方法是什么 if inventory[0] == 0 or inventory[1] == 0 or inventory[2] == 0... 等等?Python的内置函数非常适合于此。它将iterable作为参数,如果任何元素为True(非falsy),则返回True 还有一个类似的函数名为all(),如果所有元素都为True

我有一个名为inventory[]的列表或数组,它在任何给定时间最多有15个条目。我需要测试这些条目中是否有一个等于零,如果有一个条目等于零,请做些什么。不这样做的有效方法是什么

if inventory[0] == 0 or inventory[1] == 0 or inventory[2] == 0...
等等?

Python的内置函数非常适合于此。它将iterable作为参数,如果任何元素为True(非falsy),则返回
True


还有一个类似的函数名为
all()
,如果所有元素都为True,它将返回
True

利用
all
函数,并且
0
的计算结果为
False

if not all(inventory):
    ...

编辑:假设
库存
只包含数字,当然

对于您的简单案例,我认为您可以这样做:

if 0 in inventory:
  # do something
对于这类事情的更一般情况,可以使用
any
函数()

试试这个:

inventory=[1,2,3,4,0]
if 0 in inventory:
 print "There is 0 in the list"
输出:
如果库存中为0,则
的列表中为0

+1。有时人们会忘记一些更容易的事情:)易碎的,例如可以用
inventory=['spam',[],'egs']打破。
@wim:当然;我假设
inventory
是一个整数列表(这就是为什么那里有一个0)。如果不需要,最好不要做这样的假设,或者至少在你的答案中提到这些假设。“测试这些条目中是否有一个等于零,如果有一个条目等于零,请做些什么。”这令人困惑。“任何一个条目”和“任何一个条目”之间有什么区别?做些什么——一般的事情,或者特别是一个/一些/所有零条目,你需要知道零条目在列表中的位置(索引)?
if any([item == 0 for item in inventory]):
  # do something
inventory=[1,2,3,4,0]
if 0 in inventory:
 print "There is 0 in the list"