Python: descompactar para número desconhecido de variáveis?
-
08-07-2019 - |
Pergunta
Como eu poderia descompactar uma tupla de desconhecido para, digamos, uma lista?
Eu tenho um número de colunas de dados e eles ficam divididos em uma tupla por alguma função. Eu quero descompactar este tupla a variáveis, mas eu não sei quantas colunas terei. Existe alguma maneira para dinamicamente descompacte-o para tantas variáveis ??quanto eu preciso?
Obrigado por sua ajuda:)
Solução
Descompacte o tuple a uma lista?
l = list(t)
Outras dicas
Você pode usar o asterisco para descompactar um comprimento variável. Por exemplo:
foo, bar, *other = funct()
Esta deve colocar o primeiro item em foo
, o segundo em bar
, e todo o resto em other
.
Update: eu esqueci de mencionar que este é Python 3.0 compatível apenas
.Você quer dizer que você deseja criar variáveis ??na mosca? Como será o seu programa de know-how para referenciá-los, se eles são criados dinamicamente?
Tuples têm comprimentos, assim como listas. É perfeitamente admissível que fazer algo como:
total_columns = len(the_tuple)
Você também pode converter uma tupla a uma lista, embora não há nenhum benefício para fazê-lo a menos que você quiser começar a modificar os resultados. (Tuples não pode ser modificado; listas podem.) Mas, de qualquer maneira, a conversão de uma tupla a uma lista é trivial:
my_list = list(the_tuple)
Não são maneiras de criar variáveis ??na mosca (por exemplo, com eval
), mas novamente, como você sabe como fazer referência a eles?
Eu acho que você deve esclarecer exatamente o que você está tentando fazer aqui.