2015-02-08 90 views
0

我有一个可以随机更改的两个整数列表。我想检查这些整数是否超过21如何检查值的范围是否在列表中?

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

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

不过,我将如何改变这一个范围值,而不是一个特定的整数。

回答

3

既然你只有两个数字,简单的条件经营者就足够了:

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

否则,如果您有更多的数字,你可以使用anygenerator expression

if any(x > 21 for x in score): 
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。条件内的代码然后成功执行。

-1

你可以使用range

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

如果y我们的清单没有订购,您必须在继续使用前添加s.sort()range

+0

这里假定s只包含两个有序的数字。 – 2015-02-08 19:46:53

+0

这是一个正确的假设。阅读OP问题的第一句话:“我有一个包含两个可随机变化的整数的列表......”排序它们只需要额外的s.sort()' – Omid 2015-02-08 19:51:30

+0

理想情况下,您会寻找一个稍微更通用的解决方案。为什么你会创建一个任意数字的列表并将你的目标与所有这些数据进行比较?如果s [0] == 1和s [1] == 21,那么没有理由创建一个包含20个数字的列表,并将目标值与该列表中的每个成员进行比较。使用Python的“any”查看iCodez的解决方案。 – 2015-02-08 19:56:00

-1

您可以使用Set进行调查。

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

if target.issubset(score): 
    ... 
相关问题