my_list = [[1,2],[1,3],[1,3],[1,3]]
my_var = 7
我的目標Python的嵌套循環是要看到,如果my_var
比所有位置中的my_list[0][1]
和my_list[1][1]
和my_list[2][1]
等大。與條件
my_list
可以變化的長度和my_var
也可以有所不同,所以我想循環是最好的選擇?
*很新的Python
my_list = [[1,2],[1,3],[1,3],[1,3]]
my_var = 7
我的目標Python的嵌套循環是要看到,如果my_var
比所有位置中的my_list[0][1]
和my_list[1][1]
和my_list[2][1]
等大。與條件
my_list
可以變化的長度和my_var
也可以有所不同,所以我想循環是最好的選擇?
*很新的Python
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
然而,發電機表達通常優選,更簡潔和「慣用」。
你能做到這樣也:
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)
+1。我甚至沒有想過這個 – aaronasterling 2010-10-09 04:52:36
這很酷。謝謝! – Dtour 2010-10-09 04:59:53
這是Python閱讀英文的好例子。 – intuited 2010-10-09 05:03:51