Maison > développement back-end > Tutoriel Python > Comment puis-je transposer une liste de listes en Python ?

Comment puis-je transposer une liste de listes en Python ?

Patricia Arquette
Libérer: 2024-12-25 20:25:11
original
538 Les gens l'ont consulté

How Can I Transpose a List of Lists in Python?

Transposer une liste de listes

Étant donné une liste de listes, telle que :

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Copier après la connexion

Notre objectif est pour transposer la liste, ce qui donne :

r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Copier après la connexion

Utiliser zip

La fonction zip() en Python combine des éléments de plusieurs itérables en une seule liste de tuples. Nous pouvons utiliser zip pour créer une liste transposée en passant la liste d'origine sous forme de séquence d'arguments :

result = list(map(list, zip(*l)))
Copier après la connexion

La liste externe() convertit les tuples en listes, et la fonction map() applique cette transformation à chaque élément du résultat zip.

Utilisation de zip_longest

Le La fonction itertools.zip_longest() est similaire à zip, mais elle ne supprime pas les données si les itérables ont des longueurs différentes. Il remplit les itérables plus courts avec une valeur de remplissage spécifiée (Aucune par défaut) :

from itertools import zip_longest
result = list(map(list, zip_longest(*l, fillvalue=None)))
Copier après la connexion

Explication

La clé de la transposition est l'utilisation de zip pour combiner des éléments du les sous-listes de la liste originale. La fonction zip() génère des tuples contenant un élément de chaque sous-liste au même index. Ces tuples sont ensuite convertis en listes pour créer les lignes de la liste transposée.

En utilisant l'opérateur * pour décompresser la liste d'origine en arguments pour compresser, nous pouvons transposer la liste en une seule ligne de code. La fonction map() est utilisée pour garantir que le résultat est une liste de listes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal