recherche
Maisondéveloppement back-endTutoriel PythonComment puis-je transposer efficacement une liste de listes en Python ?

How Can I Efficiently Transpose a List of Lists in Python?

Transposer une liste de listes : une approche pythonique

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

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

nous visons à le transposer, ce qui se traduit par :

r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Zipping et Déballage à la rescousse

Python fournit un outil puissant appelé zip qui nous permet de combiner plusieurs itérables, créant ainsi un objet zip qui parcourt les éléments en parallèle. L'idée clé est de décompresser la liste des listes à l'aide de zip, puis de convertir les tuples résultants en listes.

Python 3 et Jagged Tables

Pour Python 3, nous avons deux options :

list(map(list, zip(*l)))

Cette approche peut court-circuiter les tableaux irréguliers (où les listes ont des longueurs).

list(map(list, itertools.zip_longest(*l, fillvalue=None)))

Cela gère les tableaux irréguliers en remplissant des listes plus courtes avec Aucun.

Python 2 et tables homogènes

Dans Python 2, l'approche la plus simple fonctionne bien pour les tables homogènes :

map(list, zip(*l))

Dévoilement du Magie

Pour comprendre le processus, considérons la première approche dans Python 3 :

  • Nous décompressons la liste des listes en utilisant *l, en passant chaque liste interne comme un argument distinct à compresser.
  • zip crée un objet zip qui combine les éléments des listes internes, produisant des tuples : (1, 4, 7), (2, 5, 8), (3, 6, 9).
  • La fonction map applique la fonction de liste à chaque tuple, le reconvertissant en liste.
  • Le résultat est une liste de listes, comme souhaité.

Gestion des tableaux irréguliers

itertools.zip_longest gère les tableaux irréguliers en remplissant des listes plus courtes avec la valeur de remplissage spécifiée (par défaut : Aucune). Cela garantit que toutes les listes du résultat transposé ont la même longueur.

Conclusion

La transposition d'une liste de listes est une tâche courante dans la manipulation de données. En exploitant la puissance de zip et en comprenant son comportement, nous pouvons mettre en œuvre des solutions efficaces en Python.

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!

Déclaration
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
Comment le choix entre les listes et les tableaux a-t-il un impact sur les performances globales d'une application Python traitant de grands ensembles de données?Comment le choix entre les listes et les tableaux a-t-il un impact sur les performances globales d'une application Python traitant de grands ensembles de données?May 03, 2025 am 12:11 AM

ForhandlingLargedatasetSInpython, UsenumpyArraysforbetterperformance.1) NumpyArraysAremeMory-EfficientAndFasterFornumericalOperations.2) EvitUnneceSsaryTypeConversions.3) Le effet de levier

Expliquez comment la mémoire est allouée aux listes par rapport aux tableaux dans Python.Expliquez comment la mémoire est allouée aux listes par rapport aux tableaux dans Python.May 03, 2025 am 12:10 AM

Inpython, listSusedynamicMemoryallocation withover-allocation, whileLumpyArraySallocateFixedMemory.1) listsallocatemoreMoryThreededEdededInitialement, redimensipwenessary.2) NumpyArraySallocateExactMemoryForElements, offrantwectable usinessflexibilité.

Comment spécifiez-vous le type d'éléments de données dans un tableau Python?Comment spécifiez-vous le type d'éléments de données dans un tableau Python?May 03, 2025 am 12:06 AM

Inpython, YouCanscthedatatatypeyfelemememedenernSspant.1) usenpynernrump.1) usenpynerp.dloatp.ploatm64, formateur préséconstrolatatype.

Qu'est-ce que Numpy et pourquoi est-il important pour l'informatique numérique dans Python?Qu'est-ce que Numpy et pourquoi est-il important pour l'informatique numérique dans Python?May 03, 2025 am 12:03 AM

NumpyissentialFornumericalComputingInpythondutOtsSpeed, MemoryEfficiency et ComprehenSiveMathematicalFunctions.1) It'sfastBecauseitPerformSoperations INC.2) NumpyArraySareMoremory-EfficientThanpythonlists.3)

Discutez du concept de «l'allocation de la mémoire contigu» et de son importance pour les tableaux.Discutez du concept de «l'allocation de la mémoire contigu» et de son importance pour les tableaux.May 03, 2025 am 12:01 AM

ContigusMymoryallocationiscrucialforAraySBauseitallowsforefficient andfastelementAccess.1) iTenablesConstanttimeAccess, o (1), duetoDirectAddressCalculation.2) itimproveScacheefficiendyAllowingMultipleElementFetchesperCacheline.3) itsimplieniesMemorymorymorymorymorymory

Comment coupez-vous une liste de python?Comment coupez-vous une liste de python?May 02, 2025 am 12:14 AM

SlitingyPapyThonListIsDoneUsingTheSyntaxList [Démarrage: arrêt: étape] .He'showitworks: 1) startisheindexofthefirStelementoinclude.2) stopisTheIndexoftheFirstelementsoexclude.3) StepistheincrementBetweenselans.it'susefulfactingPortationSoListShsandCanusegeg

Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Numpy?Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Numpy?May 02, 2025 am 12:09 AM

NumpyAllowsForvariousOperations ONARRAYS: 1) BasicarithmeticLikeaddition, Soustraction, Multiplication, anddivision; 2) AdvancedOperationSuchasmatrixMultiplication; 3) Element-Wiseoperations withoutExplicitloop

Comment les tableaux sont-ils utilisés dans l'analyse des données avec Python?Comment les tableaux sont-ils utilisés dans l'analyse des données avec Python?May 02, 2025 am 12:09 AM

ArraySinpython, en particulier ThroughNumpyandPandas, aressentialfordataanalysis, offingspeeedAfficiency.1) numpyarrayablefficienthandlingoflargedatasetsandComplexOperationsLikEMoVingAverages.2)

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP