Python 将列表中的每个元素与其在另一个列表中对应的索引进行比较
我有一份清单:Python 将列表中的每个元素与其在另一个列表中对应的索引进行比较,python,comparison,list-comprehension,Python,Comparison,List Comprehension,我有一份清单: 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]] 并标记其中任何一个,其中列表1中的每个值都大于列表2中相应索引的值[n],即: list1[0]>list2[n][0], list1[1]>list2[n][1], list1[2]>list2[n][2], list1[3]>list2[n][3
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]]
并标记其中任何一个,其中列表1中的每个值都大于列表2中相应索引的值[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]
在这里,它应该返回TRUE,TRUE,FALSE,FALSE
list1和list2[n]总是具有相同的长度,但此长度可能不同。使用
zip
和列表理解从list1
和list2[n]
中获取一对元素,然后使用all
检查是否存在所有对(x,y),x>y
如果list1
和list2[n]
大小不相等,请将zip
替换为itertools.zip\u 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]
>>> 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]