Python 如何检查列表中是否有一系列值?
我有一个包含两个整数的列表,可以随机更改。我想检查这些整数中是否有一个超过Python 如何检查列表中是否有一系列值?,python,list,Python,List,我有一个包含两个整数的列表,可以随机更改。我想检查这些整数中是否有一个超过21 例如,如果我想找到一个特定的整数,我会说: score = [4, 21] if 21 in score: ... 但是,如何将其更改为一个值范围而不是一个特定的整数。您可以这样尝试(使用any): 整数可以是任意长度的iterable,例如[2,3,1,6,7]。它将一次检查一个,以验证它是否满足i>max(score)的条件。第一个这样做将使结果短路到True。然后,条件中的代码将成功执行。您可以这样尝试
21
例如,如果我想找到一个特定的整数,我会说:
score = [4, 21]
if 21 in score:
...
但是,如何将其更改为一个值范围而不是一个特定的整数。您可以这样尝试(使用any
):
整数可以是任意长度的iterable,例如[2,3,1,6,7]
。它将一次检查一个,以验证它是否满足i>max(score)
的条件。第一个这样做将使结果短路到True
。然后,条件中的代码将成功执行。您可以这样尝试(使用any
):
整数可以是任意长度的iterable,例如[2,3,1,6,7]
。它将一次检查一个,以验证它是否满足i>max(score)
的条件。第一个这样做将使结果短路到True
。然后,条件中的代码将成功执行。您可以这样尝试(使用any
):
整数可以是任意长度的iterable,例如[2,3,1,6,7]
。它将一次检查一个,以验证它是否满足i>max(score)
的条件。第一个这样做将使结果短路到True
。然后,条件中的代码将成功执行。您可以这样尝试(使用any
):
整数可以是任意长度的iterable,例如
[2,3,1,6,7]
。它将一次检查一个,以验证它是否满足i>max(score)
的条件。第一个这样做将使结果短路到True
。然后,条件中的代码将成功执行。因为您只有两个数字,简单的条件运算符就足够了:
if score[0] > 21 or score[1] > 21:
否则,如果您有更多号码,则可以使用和:
由于您只有两个数字,简单的条件运算符就足够了:
if score[0] > 21 or score[1] > 21:
否则,如果您有更多号码,则可以使用和:
由于您只有两个数字,简单的条件运算符就足够了:
if score[0] > 21 or score[1] > 21:
否则,如果您有更多号码,则可以使用和:
由于您只有两个数字,简单的条件运算符就足够了:
if score[0] > 21 or score[1] > 21:
否则,如果您有更多号码,则可以使用和:
您可以使用
范围:
>>> s
[4, 21]
>>> 2 in range(s[0], s[1])
False
>>> 20 in range(s[0], s[1])
True
>>>
如果列表未排序,则必须添加s.sort()
,然后才能继续使用range
您可以使用range
:
>>> s
[4, 21]
>>> 2 in range(s[0], s[1])
False
>>> 20 in range(s[0], s[1])
True
>>>
如果列表未排序,则必须添加s.sort()
,然后才能继续使用range
您可以使用range
:
>>> s
[4, 21]
>>> 2 in range(s[0], s[1])
False
>>> 20 in range(s[0], s[1])
True
>>>
如果列表未排序,则必须添加s.sort()
,然后才能继续使用range
您可以使用range
:
>>> s
[4, 21]
>>> 2 in range(s[0], s[1])
False
>>> 20 in range(s[0], s[1])
True
>>>
如果列表未排序,则必须先添加s.sort()
,然后才能继续使用range
您可能会考虑使用集合
score = set([4, 21, 8, 10, 22, 12])
target= set([21, 22])
if target.issubset(score):
...
您可以考虑使用集合
score = set([4, 21, 8, 10, 22, 12])
target= set([21, 22])
if target.issubset(score):
...
您可以考虑使用集合
score = set([4, 21, 8, 10, 22, 12])
target= set([21, 22])
if target.issubset(score):
...
您可以考虑使用集合
score = set([4, 21, 8, 10, 22, 12])
target= set([21, 22])
if target.issubset(score):
...
这是一个正确的假设,假设s只包含两个有序的数字。阅读OP问题的第一句:“我有一个包含两个可以随机更改的整数的列表…”对它们进行排序只需要额外的s.sort()
,理想情况下,您可以寻找一个更一般的解决方案。为什么要创建一个任意数字的列表,并将目标与所有数字进行比较?如果s[0]==1
和s[1]==21
,则没有理由创建一个包含20个数字的列表,并将目标值与该列表中的每个成员进行比较。请参阅iCodez使用Python的any
的解决方案。我认为any
的使用不适合初学者。使用range
可能效率不高,但不会引入新的关键字。你自己的回答也表明了你对所问问题的误解,这对一个新手来说是不必要的困难,IMO。这假设s只包含两个订购的数字。这是一个正确的假设。阅读OP问题的第一句:“我有一个包含两个可以随机更改的整数的列表…”对它们进行排序只需要额外的s.sort()
,理想情况下,您可以寻找一个更一般的解决方案。为什么要创建一个任意数字的列表,并将目标与所有数字进行比较?如果s[0]==1
和s[1]==21
,则没有理由创建一个包含20个数字的列表,并将目标值与该列表中的每个成员进行比较。请参阅iCodez使用Python的any
的解决方案。我认为any
的使用不适合初学者。使用range
可能效率不高,但不会引入新的关键字。你自己的回答也表明了你对所问问题的误解,这对一个新手来说是不必要的困难,IMO。这假设s只包含两个订购的数字。这是一个正确的假设。阅读OP问题的第一句:“我有一个包含两个可以随机更改的整数的列表…”对它们进行排序只需要额外的s.sort()
,理想情况下,您可以寻找一个更一般的解决方案。为什么要创建一个任意数字的列表,并将目标与所有数字进行比较?如果s[0]==1
和s[1]==21
,则没有理由创建一个包含20个数字的列表,并将目标值与该列表中的每个成员进行比较。请参阅iCodez使用Python的any
的解决方案。我认为any
的使用不适合初学者。range
的使用可能不是很有效,但却不是