Maison >développement back-end >Tutoriel Python >Comment puis-je convertir efficacement une liste de valeurs-clés alternées en dictionnaire en Python ?
Conversion de '[key1,val1,key2,val2]' en dictionnaire : méthodes pythoniques
Problème :
En Python, nous avons une liste a avec une structure clé-valeur alternée, où chaque élément pair représente une clé de dictionnaire et son élément impair suivant est le valeur correspondante. La tâche consiste à convertir cette liste en un dictionnaire b, où chaque paire clé-valeur est mappée de manière appropriée.
Exemple :
a = ['hello', 'world', '1', '2']
Sortie souhaitée :
b = {'hello': 'world', '1': '2'}
Solution :
La méthode la plus simple pour résoudre ce problème consiste à utiliser les fonctions dict() et zip() intégrées de Python. Voici une solution syntaxiquement propre :
b = dict(zip(a[::2], a[1::2]))
Cette méthode est efficace et permet d'obtenir le résultat souhaité. Cependant, si les performances sont un problème, une approche alternative consiste à utiliser les outils itérateurs de Python :
from itertools import izip i = iter(a) b = dict(izip(i, i))
Cette méthode est particulièrement utile lorsqu'il s'agit de très grandes listes, car elle ne crée pas de listes temporaires dans le processus.
Dans Python 3, une compréhension de dict fournit également une solution concise :
b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
Alors que zip() est déjà paresseux en Python 3, vous pouvez également utiliser l'opérateur morse (:=) pour une solution sur une seule ligne dans Python 3.8 et supérieur :
b = dict(zip(i := iter(a), i))
En fin de compte, le meilleur choix dépend des exigences spécifiques et de la version de Python vous utilisez. Ces méthodes offrent des solutions propres et efficaces pour convertir des listes de paires clé-valeur alternées en dictionnaires 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!