如何检查列表中是否有一系列值?

时间:2015-02-08 19:37:04

标签: python list

我有一个包含两个整数的列表,可以随机更改。我想检查这些整数是否超过21

因此,例如,如果我想找到一个特定的整数,我会说:

score = [4, 21]
if 21 in score:
   ...

但是,我如何将其更改为一系列值而不是特定的整数。

4 个答案:

答案 0 :(得分:3)

由于您只有两个数字,因此简单的条件运算符就足够了:

if score[0] > 21 or score[1] > 21:

否则,如果您有更多号码,可以使用anygenerator expression

if any(x > 21 for x in score):

答案 1 :(得分:2)

你可以这样试试(使用any):

score = [4, 21]
integers = [21,43]
if any(i > max(score) for i in integers):
    ...

整数可以是任意长度的可迭代,比如[2,3,1,6,7]。它会一次检查一个,以验证它是否满足i > max(score)的条件。第一个将结果短路到True。条件内的代码然后成功执行。

答案 2 :(得分:-1)

您可以使用range

>>> s
[4, 21]
>>> 2 in range(s[0], s[1])
False
>>> 20 in range(s[0], s[1])
True
>>> 

如果您的列表未订购,则必须先添加s.sort(),然后才能继续使用range

答案 3 :(得分:-1)

您可以考虑使用Set

score = set([4, 21, 8, 10, 22, 12])
target= set([21, 22])

if target.issubset(score):
    ...