Maison >développement back-end >Tutoriel Python >Comment puis-je créer dynamiquement un dictionnaire Python à partir de variables ?

Comment puis-je créer dynamiquement un dictionnaire Python à partir de variables ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-01 19:07:18546parcourir

How Can I Dynamically Create a Python Dictionary from Variables?

Création de dictionnaire dynamique à partir de variables

L'introspection des variables peut être un outil précieux dans la programmation Python, en particulier lorsque vous travaillez avec des structures de données dynamiques. Une tâche courante consiste à convertir une collection de variables en un dictionnaire avec leurs valeurs correspondantes. Bien que Python ne prenne pas en charge nativement l'obtention des noms de variables sous forme de chaînes, il existe des solutions de contournement pour obtenir cette fonctionnalité.

Une approche consiste à utiliser le dictionnaire locals(), qui stocke toutes les variables locales actuellement dans la portée. Cependant, son utilisation comporte certaines limites, car les variables créées en dehors du champ d'application actuel ne seront pas incluses. Ce problème peut être résolu en parcourant manuellement le dictionnaire locals() et en recherchant des variables avec des valeurs spécifiques, comme indiqué ci-dessous :

a = 1
for k, v in list(locals().iteritems()):
    if v is a:
        a_as_str = k

Cette méthode renvoie le nom de chaîne de la variable souhaitée, qui peut ensuite être utilisée. pour construire le dictionnaire de manière dynamique :

my_dict = dict(bar=bar, foo=foo)

Il est important de noter que cette approche peut être coûteuse en termes de calcul pour de grands ensembles de variables, et ce n'est peut-être pas toujours la solution la plus simple. Cependant, il offre une option viable pour les situations où la création dynamique de dictionnaire est requise.

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