我正在编写一些python代码(这与我编写的内容无关紧要),并且遇到一种情况,我需要检查某些条件是否是针对二维列表内所有列表的特定索引的。因此,我当然知道all()
函数,但是这种事情需要两个for循环,例如:
for i in range(len(list_name)):
if all(small_list[i] % 2 == 0 for small_list in list_name):
# do something
我的问题是,是否有任何方法可以在all
或any
中执行两个循环而又不将循环之一写入all函数之外?
答案 0 :(得分:2)
所以您要说的是,您需要检查all()
,但要检查2D列表中的每个元素。简单的嵌套all()
是否可以正常工作?
if all(all(element % 2 == 0 for element in small_list)
for small_list in list_name):
或者,更紧密地镜像给定代码,
if all(all(small_list[i] % 2 == 0 for small_list in list_name) for i in range(len(list_name)))
正如@chepner在评论中指出的那样,您实际上不需要第二个all
-您可以将多个子句放在这样的理解中:
if all(small_list[i] % 2 == 0
for small_list in list_name
for i in range(len(list_name))):
答案 1 :(得分:1)
...检查二维列表中所有列表的特定索引是否为[true] ...
从您写的内容来看,我们实际上根本不需要两个for
循环。
specific_index = 3
if all(small_list[specific_index] % 2 == 0 for small_list in list_name):
doSomething()
用您选择的幻数代替specific_index
。