我有一個名爲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