Сравнение списка списков в python
Сравнение нескольких списков (более 2-х)
Имеется список списков
all_list = [[1, 2, 3, 4], [4, 4, 2, 1], [1, 2, 5, 6, 7, 4]]
необходимо сравнить все списки и вывести одинаковые значения которые имеются во всех списках в отдельный список, в данном примере это
list_a = [1, 2, 4]
Обычно для сравнения двух списков использую
set(list_1).intersection(list_2)
но как сравнить несколько списков (более 2-х, в моем случае более 100)?
Ответы (1 шт):
Автор решения: MarianD
→ Ссылка
set(all_list[0]).intersection(*all_list[1:])
или
set.intersection(*(set(elem) for elem in all_list))
Объяснение:
Метод .intersection() может принимать любое количество аргументов.
Звездочкой перед списком (в первом случае) или перед генератором (во втором случае) сделаем из отдельных элементов отдельные аргументы.