76 votes

Python -Intersection de plusieurs listes ?

Je joue avec Python et je suis capable d'obtenir l'intersection de deux listes :

result = set(a).intersection(b)

Maintenant si d est une liste contenant a y b et un troisième élément c Est-ce qu'il y a une fonction intégrée pour trouver l'intersection des trois listes à l'intérieur de la liste ? d ? Ainsi, par exemple,

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

alors le résultat devrait être

[3,4]

1voto

sgyzetrov Points 71

Je trouve reduce() pour être particulièrement utile. En effet, le numpy Les documents recommandent d'utilisation de reduce() pour intersecter plusieurs listes : référence numpy.intersect1d

Pour répondre à votre question :

import numpy as np
from functools import reduce
# apply intersect1d to (a list of) multiple lists:
reduce(np.intersect1d, [list_1, list_2, ... list_n])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X