0
votes

Comment construire une variable de manière dynamique en itérant à travers la boucle dans Python

J'ai un tas de variables comme ci-dessous. Jusqu'à présent, je souhaite construire une variable de manière dynamique comme ci-dessous en itérant à la boucle, mais de manière surprenante, cela ne fonctionnera pas car .format ne peut être implémenté que pour les chaînes. Quelqu'un pourrait-il partager vos pensées comme comment cela peut être mis en œuvre dans PY? Toute aide serait appréciée. Merci! XXX


7 commentaires

Une raison particulière pour laquelle vous le faites au lieu d'utiliser un dictionnaire?


build_a, build_b, build_c sont des variables qui ont d'énormes chaînes .... L'exemple que j'ai posté est simple


Quelle est votre production attendue?


La question reste. Utilisez un dictionnaire, il existe pour résoudre des problèmes comme celle-ci.


N'utilisez pas de variables dynamiques. il suffit d'utiliser un conteneur , aime une liste ou un dict


Quelle est la sortie que vous voulez?


La syntaxe que vous montrez ici est incorrecte. Le format mini langue ne fonctionne que sur les chaînes. Build_ {Word} .format (FOO) Causer une erreur de syntaxe S. Bien sûr, il y a des hacks impie pour réaliser ce que vous voulez (les incantations basées sur Eval and Exece à l'esprit). Mais comme d'autres l'ont souligné, ce dont vous avez besoin est une structure de données appropriée et un dictionnaire convient à cette affaire. D'autre part, si vous explorez la génération de code ou similaire, construisez simplement une chaîne de formulaire que vous souhaitez, appelez-la sur EXED pour vous apporter de la bête.


4 Réponses :


2
votes

Un dictionnaire pourrait être beaucoup mieux adapté à ce que vous essayez d'atteindre. xxx

sortie: {'A': '123', 'C': '789', 'B': '456'}


0 commentaires

1
votes

est-ce ce que vous voulez: xxx

sortie: xxx


0 commentaires

0
votes

Vous pouvez utiliser quelque chose comme ceci:

a
b


0 commentaires

0
votes

Comme suggéré dans la plupart des réponses, un dict code> est la solution à vos problèmes.

Option 1: via une paire de Liste code> s grâce à zip code> h1>

dans ce cas, le tuple code> est formé par la fonction code> zip code> qui renvoie un itérateur em> qui est consommé em> par le dict code>. Cet itérateur fusionne la liste 2 code> S en préservant l'index de l'élément. P>

Remarque: Si vous envisagez d'utiliser 2 liste CODE> S avec une longueur différente, vous pourriez être intéressé par un look to zip_longest . strong> p> xxx pré>

option 2: Utilisation de dict code> compréhension h1>

Vous pouvez utiliser un dict code> compréhension au cas où vous souhaitez montrer explicitement la boucle pendant le DICT CODE> Processus de construction. P>

keys = ['a', 'b', 'c']
values = [123, 456, 789]

build_src = zip(keys, values)
build_list = {key: val for key, val in build_src}


0 commentaires