如何在不使用for循环的情况下将列表中的所有项与整数进行比较

2024-06-26 14:41:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个长度不同的列表,我想用一个整数来比较它们的每一个项,如果其中任何一个项高于所说的整数,它就会中断它所在的for循环。

for list in listoflists:
    if {anyiteminlist} > 70:
        continue    #as in skip to next list

    {rest of code here} 

基本上,我需要说:“如果列表中的任何内容超过70,请继续循环下一个列表”


Tags: oftoinrest列表forifas
3条回答

您可以像这样使用内置函数any

for list in listoflists:
    if any(x < 70 for x in list):
        continue

any函数进行短路计算,因此只要在列表中找到满足条件的整数,它就会返回True

另外,不应该使用变量list,因为it is a built-in function

不要使用list作为变量名,它会隐藏内置的list()。有一个名为^{}的内置函数,在这里很有用

if any(x>70 for x in the_list):

介于()之间的部分称为generator expression

好吧,我可能会使用生成器表达式来完成,但是由于还没有其他人提出这个建议,而且它没有(显式)嵌套循环:

>>> lol = [[1,2,3],[4,40],[10,20,30]]
>>> 
>>> for l in lol:
...     if max(l) > 30:
...         continue
...     print l
... 
[1, 2, 3]
[10, 20, 30]

相关问题 更多 >