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
Linda Hamiltonoriginal
2024-12-04 18:37:15508parcourir

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]))

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)}

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))

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))

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