Python: ¿intersección de múltiples listas?

Resuelto Legend asked hace 14 años • 6 respuestas

Estoy jugando con Python y puedo obtener la intersección de dos listas:

result = set(a).intersection(b)

Ahora bien, si dhay una lista que contiene ay bun tercer elemento c, ¿hay una función incorporada para encontrar la intersección de las tres listas internas d? Así por ejemplo,

d = [[1,2,3,4], [2,3,4], [3,4,5,6,7]]

entonces el resultado debería ser

[3,4]
Legend avatar Oct 04 '10 11:10 Legend
Aceptado
set.intersection(*map(set,d))
SingleNegationElimination avatar Oct 04 '2010 04:10 SingleNegationElimination

Puede obtener la intersección de conjuntos de números arbitrarios usando set.intersection(set1, set2, set3...). Entonces sólo necesitas convertir tus listas en conjuntos y luego pasarlas a este método de la siguiente manera:

d = [[1,2,3,4], [2,3,4], [3,4,5,6,7]]  
set.intersection(*[set(x) for x in d])  

resultado:

{3, 4}
A. John Callegari avatar Mar 11 '2020 00:03 A. John Callegari