Python嵌套循环条件

时间:2010-10-09 04:33:28

标签: python list loops conditional-statements

my_list = [[1,2],[1,3],[1,3],[1,3]]
my_var = 7

我的目标是能够看到my_var是否大于my_list[0][1]以及my_list[1][1]my_list[2][1]的所有职位,等等。

my_list长度不一,my_var也可能不同,所以我认为循环是最好的选择?

*非常新的python

2 个答案:

答案 0 :(得分:4)

all(variable > element for element in list)

或列表中列表的元素i

all(variable > sublist[i] for sublist in list)

如果任何元素太大,这具有提前踢出的优点。这是有效的,因为... for ... in list是Python功能强大且多种多样的generator expressions的实例。它们与list comprehensions类似,但只根据需要生成值。

all本身只是检查它传递的iterable中的所有值是否为真。生成器表达式,列表推导,列表,元组和其他类型的序列都是可迭代的。

因此,第一个语句最终等同于调用类似

的函数
def all_are_greater_than_value(list, value):
    for element in list:
        if element <= value:
            return False
    return True

all_are_greater_than_value(list, variable) ...

或只是

all_greater = True
for element in list:
    if element <= value:
        all_greater = False
        break

然而,生成器表达通常是首选,更简洁和“惯用”。

答案 1 :(得分:1)

你也可以这样做:

my_list = [[1,2],[1,3],[1,3],[1,3]]
my_var = 7
print all(all(x < my_var for x in sublist) for sublist in my_list)