Comment imprimer les valeurs assignées en boucle en python? [dupliquer]

Oct 12 2020

J'ai attribué les valeurs aux variables nouvellement créées dans une boucle et je veux imprimer les valeurs des variables nouvellement créées.

for i,j in zip(range(0,2)):
    exec(f'cat{i} = 1')

Je veux imprimer cat_0 et cat_1 dans la boucle

Réponses

2 KonradRudolph Oct 12 2020 at 17:20

Comme l'a commenté Juan, il n'y a jamais de bonne raison de faire cela. Utilisez une liste régulière:

cat = [0] * 2
for i in range(0, 2):
    cat[i] = 1

… Je suppose que le code réel fait quelque chose de plus intéressant; sinon vous vous passeriez simplement d' cat = [1] * 2une boucle.

Ou, si votre iest une valeur non numérique (ou numérique mais non contiguë), utilisez un dict:

cat = {}

for i in ['foo', 'bar', 'baz']:
    cat[i] = 1

Cependant, encore une fois, vous pouvez écrire ce type de code de manière plus concise et sans boucle:

cat = {key: 1 for key in ['foo', 'bar', 'baz']}