146 votes

Comment convertir une liste de tuples en plusieurs listes?

Supposons que j'ai une liste de tuples et que je veuille la convertir en plusieurs listes.

Par exemple, la liste de tuples est

[(1,2),(3,4),(5,6),]

Y a-t-il une fonction intégrée en Python qui la convertisse en :

[1,3,5],[2,4,6]

Cela peut être un programme simple. Mais je suis juste curieux de savoir si une telle fonction intégrée existe en Python.

3voto

Eric Lin Points 21

En plus de la réponse de Claudiu, vous pouvez utiliser :

>>>a, b = map(list, zip(*[(1, 2), (3, 4), (5, 6)]))
>>>a
[1,3,5]
>>>b
[2,4,6]

Modifié selon @Peyman mohseni kiasari

1 votes

Non! cela vous donnera (1, 3, 5) et (2, 4, 6) pas des listes. vous devriez utiliser map(list, zip(*[(1, 2), (3, 4), (5, 6)]))

0voto

Quickbeam2k1 Points 2111

Ajoutant à la réponse de Claudiu et à la réponse de Claudiu et puisque la carte doit être importée de itertools en python 3, vous pouvez également utiliser une compréhension de liste comme suit :

[[*x] for x in zip(*[(1,2),(3,4),(5,6)])]
>>> [[1, 3, 5], [2, 4, 6]]

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