Maison > développement back-end > Tutoriel Python > Comment puis-je convertir efficacement une liste plate de paires clé-valeur en un dictionnaire en Python ?

Comment puis-je convertir efficacement une liste plate de paires clé-valeur en un dictionnaire en Python ?

Linda Hamilton
Libérer: 2024-12-04 18:37:15
original
524 Les gens l'ont consulté

How Can I Efficiently Convert a Flat List of Key-Value Pairs into a Dictionary in Python?

Conversion d'une liste plate en dictionnaire

En Python, la conversion d'une liste de paires clé-valeur en dictionnaire peut être réalisée en plusieurs façons. L'approche la plus simple consiste à utiliser la fonction dict(). Par exemple, étant donné la liste a = ['hello', 'world', '1', '2'], nous pouvons créer le dictionnaire b en utilisant la syntaxe suivante :

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

Cette ligne de code utilise la fonction zip() pour créer une liste de tuples, où chaque tuple contient une clé et sa valeur correspondante. La fonction dict() convertit ensuite cette liste de tuples en dictionnaire.

Une autre méthode pour convertir la liste en dictionnaire consiste à utiliser une compréhension de dictionnaire. Cette approche est plus concise et plus facile à lire, en particulier pour les listes plus grandes :

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

Cette compréhension parcourt la liste a par paires et attribue le premier élément à la clé et le deuxième élément à la valeur.

Si la liste est très longue, vous souhaiterez peut-être éviter de créer des listes intermédiaires. Dans de tels cas, vous pouvez utiliser la fonction itertools.izip() pour parcourir la liste paresseusement, sans créer de liste temporaire. La syntaxe de cette approche est la suivante :

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

Dans Python 3, la fonction zip() est déjà paresseuse, vous n'avez donc pas besoin d'utiliser izip(). Vous pouvez également utiliser l'opérateur "morse" (:=) pour é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
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