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!
4 Réponses :
Un dictionnaire pourrait être beaucoup mieux adapté à ce que vous essayez d'atteindre. sortie:
{'A': '123', 'C': '789', 'B': '456'} Code> P> P>
est-ce ce que vous voulez: sortie: p>
Vous pouvez utiliser quelque chose comme ceci:
a b
Comme suggéré dans la plupart des réponses, un dans ce cas, le Vous pouvez utiliser un dict code> est la solution à vos problèmes.
Option 1: via une paire de
Liste code> s grâce à
zip code> h1>
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>
liste CODE> S avec une longueur différente, vous pourriez être intéressé par un look to zip_longest . strong> p>
option 2: Utilisation de
dict code> compréhension h1>
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}
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 i>, aime une liste
code> ou un
dict code>
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) CODE> 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.