J'ai deux listes

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

Et quand je parcourt la liste

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

Et j'ai réussi à faire la différence, mais j'ai aussi besoin de temps car c'est un élément distinct et 'uvz' ne veut rien dire pour moi dans la liste avec quelques milliers d'entrées. J'ai essayé de le convertir dans le dictionnaire, mais il l'écrase avec la dernière clé: valeur {'01:15' : 'def'}.

1
Levicki 25 févr. 2021 à 04:01

2 réponses

Meilleure réponse

Reformatez vos données, puis faites ce que vous avez fait auparavant

list1=list(zip(list1[::2],list1[1::2]))
list2=list(zip(list2[::2],list2[1::2]))
1
Bing Wang 25 févr. 2021 à 01:11

Convertissez les deux listes en ensembles de tuples, puis utilisez l'opérateur de différence d'ensemble.

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 févr. 2021 à 01:13