Сравнение списка списков в 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() может принимать любое количество аргументов.

Звездочкой перед списком (в первом случае) или перед генератором (во втором случае) сделаем из отдельных элементов отдельные аргументы.

→ Ссылка