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
答案 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)