Python: ¿intersección de múltiples listas?
Estoy jugando con Python y puedo obtener la intersección de dos listas:
result = set(a).intersection(b)
Ahora bien, si d
hay una lista que contiene a
y b
un 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]
Aceptado
set.intersection(*map(set,d))
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}