Maison > développement back-end > Tutoriel Python > Comment puis-je convertir efficacement une liste tabulaire en dictionnaire en Python ?

Comment puis-je convertir efficacement une liste tabulaire en dictionnaire en Python ?

DDD
Libérer: 2024-12-07 06:24:12
original
225 Les gens l'ont consulté

How Can I Efficiently Convert a Tabular List to a Dictionary in Python?

Conversion de listes tabulaires en dictionnaires en Python

Souvent en programmation, nous rencontrons des scénarios où les données sont organisées sous un format tabulaire, comme un liste où les indices pairs représentent les clés et les indices impairs représentent les valeurs correspondantes. La tâche est de transformer cette liste en dictionnaire.

Solution :

Le moyen le plus propre et le plus efficace de réaliser cette conversion consiste à utiliser les fonctions intégrées de Python :

b = dict(zip(a[::2], a[1::2]))
Copier après la connexion

Ce code parcourt efficacement la liste a, en la découpant à l'aide de l'opérateur de tranche étendu [::2], qui ignore tous les autres éléments. Le résultat est deux listes : a[::2] contient les clés et a[1::2] contient les valeurs. Ces listes sont ensuite utilisées pour construire un dictionnaire à l'aide de la fonction dict().

Pour les grandes listes, une approche alternative est recommandée pour éviter de créer des listes temporaires :

from itertools import izip
i = iter(a)
b = dict(izip(i, i))
Copier après la connexion

Cette méthode utilise le Fonction iter() pour créer un itérateur pour la liste a. La fonction izip() (ou zip() dans Python 3) entrelace les éléments de chaque itérateur, créant un nouvel itérateur qui génère des tuples de clés et de valeurs. Ces tuples sont ensuite transmis à dict() pour construire le dictionnaire.

Dans Python 3, une autre méthode syntaxiquement pratique est :

b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
Copier après la connexion

Ce code utilise une compréhension de dictionnaire qui parcourt la liste indices par étapes de deux, assemblant les clés et les valeurs dans un nouveau dictionnaire.

Dans Python 3.8 et versions ultérieures, l'opérateur "morse" (:=) fournit une manière concise d'écrire ceci sur une seule ligne :

b = dict(zip(i := iter(a), i))
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal