Python: cria variáveis usando loop [closed]

-1

Como posso criar uma variável de dicionário e cada variável tem um número idêntico usando um loop em python, se for possível?  por exemplo:

counter=0
for line in {1..5}:
     counter +=1
     line_dict_%counter={}
     line_dict_%counter[a]=1

saída

line_dict_1={'a':'1'}
line_dict_2={'a':'1'}
.1
.
.
    
por Adam 20.03.2016 / 04:25

1 resposta

1

No Python, você pode usar a função exec() :

>>> for i in range(1, 6):
...     exec("line_dict_%s = { 'a': 1 }" % i)
... 
>>> line_dict_1
{'a': 1}
>>> line_dict_2
{'a': 1}
>>> line_dict_3
{'a': 1}
>>> line_dict_4
{'a': 1}
>>> line_dict_5
{'a': 1}

Usar exec() não é uma boa ideia na maioria das vezes, prefiro um dicionário para manter os mapeamentos:

>>> kv = {}
>>> for i in range(1, 6):
...     kv['line_dict_{}'.format(i)] = { 'a': 1 }
... 
>>> kv
{'line_dict_4': {'a': 1}, 'line_dict_5': {'a': 1}, 'line_dict_1': {'a': 1}, 'line_dict_3': {'a': 1}, 'line_dict_2': {'a': 1}}

>>> kv['line_dict_1']
{'a': 1}
>>> kv['line_dict_2']
{'a': 1}
>>> kv['line_dict_3']
{'a': 1}
>>> kv['line_dict_4']
{'a': 1}
>>> kv['line_dict_5']
{'a': 1}
    
por heemayl 20.03.2016 / 05:02