将列表的每个元素与另一个列表中的相应索引进行比较

Mat*_*att 2 python comparison list-comprehension

我有一个清单:

list1=[1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

我需要将其与一系列其他列表进行比较:

list2=[[0,0,0,0,0,0],[0,1,2,3,4,5],[2,2,2,2,2,2],[5,4,3,2,1,0]]
Run Code Online (Sandbox Code Playgroud)

并标记其中list1中的每个值都大于list2 [n]中相应索引的值的任何一个,即:

list1[0]>list2[n][0], list1[1]>list2[n][1], list1[2]>list2[n][2], list1[3]>list2[n][3], list1[4]>list2[n][4], list1[5]>list2[n][5]
Run Code Online (Sandbox Code Playgroud)

在这里,它应该返回TRUE,TRUE,FALSE,FALSE

list1和list2 [n]的长度始终相同,但此长度可能不同.

Sun*_*tha 5

使用zip和列表理解,从得到一双元素list1list2[n]再利用all,以检查是否所有对(X,Y),X> Y

>>> list1=[1,2,3,4,5,6]
>>> list2=[[0,0,0,0,0,0],[0,1,2,3,4,5],[2,2,2,2,2,2],[5,4,3,2,1,0]]
>>> [all(x>y for x,y in zip(list1,lst)) for lst in list2]
[True, True, False, False]
Run Code Online (Sandbox Code Playgroud)

如果list1list2[n]是不平等的大小,更换zipitertools.zip_longest

>>> from itertools import zip_longest
>>> [all(x>y for x,y in zip_longest(list1,lst, fillvalue=0)) for lst in list2]
[True, True, False, False]
Run Code Online (Sandbox Code Playgroud)