У меня есть два списка

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' для меня ничего не значит в списке из нескольких тысяч записей. Я пытался преобразовать его в словарь, но он перезаписывает последний ключ: значение {'01:15' : 'def'}.

1
Levicki 25 Фев 2021 в 04:01

2 ответа

Лучший ответ

Переформатируйте свои данные, а затем делайте то, что делали раньше

list1=list(zip(list1[::2],list1[1::2]))
list2=list(zip(list2[::2],list2[1::2]))
1
Bing Wang 25 Фев 2021 в 01:11

Преобразуйте два списка в наборы кортежей, затем используйте оператор разности наборов.

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)
2
Barmar 25 Фев 2021 в 01:13