首页 > 解决方案 > 比较两个具有特定值的列表以读取

问题描述

我有两个清单

list1 = ['01:15', 'abc', '01:15', 'def', '01:45', 'ghi' ]
list2 = ['01:15', 'abc', '01:15', 'uvz', '01:45', 'ghi' ]

当我遍历列表时

list_difference = []
for item in list1:
    if item not in list2:
        list_difference.append(item)

我设法得到了区别,但我也需要时间,因为它是一个单独的项目,'uvz'对我来说,列表中有几千个条目对我没有任何意义。我试图将它转换为字典,但它被最后一个 key:value 覆盖{'01:15' : 'def'}

标签: pythonlistcompare

解决方案


将两个列表转换为元组集合,然后使用集合差分运算符。

set1 = set((list1[i], list1[i+1]) for i in range(0, len(list1), 2))
set2 = set((list2[i], list2[i+1]) for i in range(0, len(list2), 2))
list_difference = list(set1 - set2)

推荐阅读