Como criar variáveis a partir de uma lista?

237 views
Skip to first unread message

Angelo Sampaio

unread,
Mar 2, 2016, 8:01:58 PM3/2/16
to Python Brasil
Prezados
Estou me iniciando no Python e estou tentando reproduzir algumas manobras lógicas que conseguia realizar em outras linguagens neste novo terreno.
Verifiquei que através de listas ou dicionários eu poderia atribuir valores a uma grande quantidade de variáveis se eu quisesse, mas a título de curiosidade
 existe alguma forma para a construção ( que não funciona) funcionar corretamente? 

variaveis = ["A", "C", "Z", "A1", "B1"]
valores = range(len(variaveis))

for a,b in zip(variaveis, valores):

Vinicius piassa ferreira

unread,
Mar 2, 2016, 8:42:49 PM3/2/16
to Python Brasil
Olá Angelo,

O que você esta querendo fazer é criar variáveis dinamicamente o código abaixo pode lhe ajudar. 

variaveis = ['A','C','Z','A1','B1']
valores = range(len(variaveis)

for a in valores:
    locals()['var%d' % (a)] = variaveis[a] #aqui é se cria as variaveis pegue o tamanho da sua lista vai ser o numero de variaveis que vai ser criado var0, var1 ...

Espero ter ajudado.


Linux - Junior Polegato

unread,
Mar 2, 2016, 10:09:17 PM3/2/16
to Python Brasil

Olá!

Se quer criar dicionário:

d = dict(zip(variaveis, valores))

print d
{'A': 0, 'A1': 3, 'C': 1, 'Z': 2, 'B1': 4}

print d['A1']
3

Se quer torná-las variáveis reais (vai atualizar os valores se já existirem):

d = dict(zip(variaveis, valores))
locals().update(d)

print A1
3

print Z
2

--
[]'s

Junior Polegato

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

John Evan Dizaro

unread,
Mar 3, 2016, 6:20:20 AM3/3/16
to Python Brasil

Aproveitando a pergunta e se quiser apagar as variáveis criadas dinamicamente?

John Evan Dizaro

unread,
Mar 3, 2016, 6:22:39 AM3/3/16
to Python Brasil

Desculpe acho que me exprssei erro digo detonar a variável.excluir a variavel

Linux - Junior Polegato

unread,
Mar 3, 2016, 6:36:44 AM3/3/16
to python...@googlegroups.com
Em 03-03-2016 08:22, John Evan Dizaro escreveu:
>
> Desculpe acho que me exprssei erro digo detonar a variável.excluir a
> variavel
>

Olá!

Use o `del´ para apagar qualquer variável:

»» a = 1
»» print a
1
»» del a
»» print a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

Se quiser apagar dinamicamente pela string da variável:

»» a = 1
»» print a
1
»» del locals()['a']
»» print a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

No caso exemplificado, se você tiver em lista, tupla ou
dicionário as variáveis a serem apagadas na forma de string:

for var in <lista_vars>:
del locals()[var]

--

[]'s

Junior Polegato

John Evan Dizaro

unread,
Mar 3, 2016, 9:58:00 AM3/3/16
to Python Brasil
Obrigado

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
   http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
   python-brasi...@googlegroups.com

--- Você está recebendo esta mensagem porque se inscreveu no grupo "Python Brasil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.



--
John Evan Dizaro - Desenvolvimento de Sistema Computacionais
Linux, MSWindows
Celular (41) 9540-4240

 °v° NÃO USE DROGAS,
/(_)\ USE GNU/LINUX
 ^ ^

Angelo Sampaio

unread,
Mar 3, 2016, 7:41:30 PM3/3/16
to Python Brasil
Agradeço as respostas recebidas apesar de eu ter enviado a questão incompleta. As formas que o Vinícius e o Junior apresentaram esclarecem as minhas dúvidas e me mostram que ainda tenho um longo caminho.


Em quarta-feira, 2 de março de 2016 22:01:58 UTC-3, Angelo Sampaio escreveu:

John Evan Dizaro

unread,
Mar 4, 2016, 8:19:09 AM3/4/16
to Python Brasil
Não se preocupe Sangelo em matéria de programação todos temos um eterno longo caminho e os que acham que não logo estarão fora do mercado
Não podemos parar
Abraços

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages