如何在python中比较两个列表列表

add*_*tes 2 python list python-3.x

我有两个列表列表,如下所示:

List_1 = [[10.7,7.2],[6.3,5.0],[8.9,10.0]]
List_2 = [[10.7,6.8],[6.3,4.9],[8.9,12.7]]
Run Code Online (Sandbox Code Playgroud)

我想创建一个名为List_3的第三个列表,它只包含List_2对,其中List_2中对的第二个值大于List_1中对的第二个值.例如,在这种情况下,List_3将是一个如下所示的列表:

List_3 = [[8.9,12.7]]
Run Code Online (Sandbox Code Playgroud)

因为第二个值12.7是唯一一个大于List_1中对的第二个值的值.换句话说,我想将List_1中的所有列表与List_2中的所有列表进行比较,并且仅获取List_2中的列表,其中List_1的n大于List_2的n,其中列表1和2看起来像:

[[m,n],[m,n],[m,n]]
Run Code Online (Sandbox Code Playgroud)

我尝试创建以下代码但它没有按预期工作:

List_3 = []
for i in range(len(List_2)):
    for j in range(len(List_1)):
         if List_2[i][1] > List_1[j][1]:
                List_3.append(List_2[i][1])   
print(List_3) 
Run Code Online (Sandbox Code Playgroud)

我怎么能解决这个问题,这样我就可以在List_2 [m] [n]中的n大于List_1 [m] [n]时创建List_3?

任何有关如何处理此问题的想法或建议将不胜感激.

wim*_*wim 7

使用列表理解和zip:

>>> List_1 = [[10.7,7.2],[6.3,5.0],[8.9,10.0]]
... List_2 = [[10.7,6.8],[6.3,4.9],[8.9,12.7]]
... 
>>> List_3 = [l2 for l1, l2 in zip(List_1, List_2) if l2[1] > l1[1]]
>>> List_3
[[8.9, 12.7]]
Run Code Online (Sandbox Code Playgroud)