Biorąc pod uwagę dwie listy, celem jest znalezienie wartości nie nakładającej się między nimi.

Na podstawie sugestii omówionej w op. Można to osiągnąć jeden z dwóch podejścia

list_one=['ISL','BUK','ORG','CLC','STS','PLP','t1','t2','t3','t4','DE1','DE2','DE4']
list_two=['t1','t2','t3','t4']

APP1=set(list_one) ^ set(list_two)

APP2 = set(list_one).symmetric_difference(list_two)

Twoja sugestia została wysłana

{'DE4', 'DE2', 'CLC', 'STS', 'ORG', 'BUK', 'ISL', 'DE1', 'PLP'}

Podczas pracy, ale zamówienie z list_one jest zniekształcony. Moje pytanie brzmi: jak można modyfikować powyższy kod do wyjścia jak poniżej, gdzie zamawianie następuje zgodnie z w list_one

EXPECTED_OUTPUT=['ISL','BUK','ORG','CLC','STS','PLP','DE1','DE2','DE4']
0
balandongiv 14 październik 2020, 12:44

1 odpowiedź

Najlepsza odpowiedź
inner_set = set(list_one) & set(list_two)
EXPECTED_OUTPUT = [i for i in list_one + list_two if i not in inner_set]

# or
EXPECTED_OUTPUT = [i for i in list_one + list_two if not (i in list_one and i in list_two)]
1
辜乘风 14 październik 2020, 09:57