Python: Attribuez chaque élément d'une liste à une variable distincte
si j'ai une liste, dire:
ll = ['xx','yy','zz']
et je veux attribuer à chaque élément de cette liste à une variable distincte:
var1 = xx
var2 = yy
var3 = zz
sans savoir combien de temps la liste est, comment puis-je faire? J'ai essayé:
max = len(ll)
count = 0
for ii in ll:
varcount = ii
count += 1
if count == max:
break
Je sais que varcount est pas un moyen valable de créer une variable dynamique, mais ce que j'essaie de faire est de créer var0, var1, var2, var3, ect basé sur ce que le comte est.
Merci!
EDIT:
nvm je devrais commencer une nouvelle question. Merci pour l'aide!
source d'informationauteur David Yang | 2013-10-10
Vous devez vous connecter pour publier un commentaire.
généralement parlant, il est pas suggéré d'utiliser ce genre de programmes pour un grand nombre d'éléments de la liste /les variables.
Cependant, l'énoncé suivant fonctionne très bien et comme prévu
Ceci est appelé la "déstructuration".
il pourrait vous faire économiser quelques lignes de code dans certains cas, par exemple, j'ai a,b,c entiers et voulez leur chaîne de valeurs comme sa,sb,sc:
ou, encore mieux
Pas une bonne idée de le faire; qu'allez-vous faire avec les variables d'après vous les définir?
Mais en supposant que vous avez une bonne raison, voici comment le faire en python:
Ici,
globals()
est l'espace de noms local présenté comme un dictionnaire. La numérotation commence à zéro, comme les indices de tableau, mais vous pouvez direenumerate()
commencer à partir de 1 au lieu de.Mais encore une fois: Il est peu probable que cela soit réellement utile pour vous.
Vous devez revenir en arrière et repenser pourquoi vous avez "besoin" des variables dynamiques. Les Chances sont, vous pouvez créer la même fonctionnalité avec une boucle dans la liste, ou à le découper en morceaux.
Si le nombre d'Éléments ne change pas, vous pouvez convertir la liste de chaîne et de le diviser à des variables.
Au lieu de cela, faire cela:
Je suis en supposant que vous êtes l'obtention de la liste, par voie de requête SQL - pourquoi vous ne pouvez pas s'engager à une longueur. Avec qui, il me semble évident que vous souhaitez prendre ces valeurs et exécuter d'autres commandes SQL à l'aide de chacune de valeur nouvellement acquises séparément. Ce n'est pas un moyen de sortir de concept, si vous le prenez à partir d'un SQL point de vue, et si je suis correct, je vais donner la syntaxe. Cependant, vous n'aurez pas besoin de créer des noms de variables avec cette solution et de ne pas perdre la polyvalence vous travaillez vers. SI JE ME TROMPE DÉSOLÉ POUR PERDRE VOTRE TEMPS