Como imprimir os valores atribuídos em loop em python? [duplicado]

Oct 12 2020

Atribuí os valores para variáveis ​​recém-criadas em um loop e quero imprimir os valores das variáveis ​​recém-criadas.

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

Quero imprimir cat_0 e cat_1 dentro do loop

Respostas

2 KonradRudolph Oct 12 2020 at 17:20

Conforme comentado por Juan, nunca há um bom motivo para fazer isso. Use uma lista regular:

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

… Estou assumindo que o código real faz algo mais interessante; caso contrário, você apenas faria cat = [1] * 2sem um loop.

Ou, se ifor um valor não numérico (ou numérico, mas não contíguo), use um dict:

cat = {}

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

Embora, novamente, você possa escrever esse tipo de código de forma mais concisa e sem um loop:

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