Как получить значение, существующее в двух отдельных списках, используя python

Сравните два списка и найдите дубликаты, которые существуют в обоих списках из двух списков удалить существующие дубликаты и создать новые списки.

Input 
a=  [
"DJI_0229.jpg",
"DJI_0232.jpg",
"DJI_0233.jpg"
"DJI_0235.jpg"
]
b= [
"DJI_0229.jpg",
"DJI_0232.jpg",
"DJI_0233.jpg"
"DJI_0230.jpg",
"DJI_0231.jpg",
"DJI_0234.jpg"
]

output = 
[
"DJI_0230.jpg",
"DJI_0231.jpg",
"DJI_0234.jpg",
"DJI_0235.jpg"
]

вы можете использовать это

def remove_dupilicate(List1,List2):
    return [item for item in List1 if item not in List2]

new_a = remove_dupilicate(a, b)
new_b = remove_dupilicate(b, a)
print(new_a,new_b)

вывод для списка new_a - ['DJI_0235.jpg'] и списка new_b - ['DJI_0230.jpg', 'DJI_0231.jpg', 'DJI_0234.jpg']

вы можете это сделать

a= ["DJI_0229.jpg","DJI_0232.jpg","DJI_0233.jpg","DJI_0235.jpg"]
b= ["DJI_0229.jpg","DJI_0232.jpg","DJI_0233.jpg","DJI_0230.jpg","DJI_0231.jpg","DJI_0234.jpg"]
c = []
for image in (a+b):
    if image not in c:
        c.append(image)
    else:
        c.remove(image)
print(c)

Самым простым способом достижения желаемого является использование симметричной разности множеств. Рассмотрим приведенную ниже диаграмму Венна :

Venn diagram for symmetric difference of 2 sets

Реализация кода

from pprint import pprint

a = ["DJI_0229.jpg", "DJI_0232.jpg", "DJI_0233.jpg", "DJI_0235.jpg"]

b = [
    "DJI_0229.jpg",
    "DJI_0232.jpg",
    "DJI_0233.jpg",
    "DJI_0230.jpg",
    "DJI_0231.jpg",
    "DJI_0234.jpg",
]

final_list = sorted(
    list(
        set(a).symmetric_difference(set(b))  # Using some maths :-)
    )  # Converting the set to list
)  # Sorting the resultant list

pprint(final_list)
Вернуться на верх