根据列表中的值输入if语句

时间:2014-06-08 03:48:24

标签: python list if-statement

我使用包含所有分数的列表playerScores制作了一个评分系统

# Fake sample data    
playerScores = [5, 2, 6, 9, 0]

我希望当列表中的任何分数等于或小于0时​​运行if语句

我试过了

if playerScores <= 0:

但我被告知列表不可调用

2 个答案:

答案 0 :(得分:3)

您可以将any与生成器表达式结合使用,以检查列表元素是否小于或等于0.

playerScores = [5, 2, 6, 9, 0]
if any(score <= 0 for score in playerScores):
    # At least one score is <= 0

答案 1 :(得分:0)

您的playerScores变量是一个列表。试图将它与0(或任何数字)进行比较,效果不会很好。

>>> a = [1, 2]
>>> a <= 0
False

而是使用for循环来检查列表中的每个项目

for item in playerScores:
    if item <= 0:
        ## Do something

如果您只是想检查是否有<= 0,那么只需将条件设置为False,如果找到,则将其更改为True

flag = False
for item in playerScores:
    if item <= 0:
        flag = True
        break

if flag:
    ## Do something

我不知道你为什么会收到list not callable错误。使用与列表的比较(如上所示)将返回False。为了得到你提到的错误,你需要这样的东西

>>> a(1)

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    a(1)
TypeError: 'list' object is not callable

在这里,您尝试将列表调用为函数function(),而不是将其编入索引list[]

>>> a[1]
2