2015-02-08 31 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): 
    ... 
相關問題