Estou tentando converter um conjunto em uma lista no Python 2.6. Eu estou usando esta sintaxe:
first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
No entanto, recebo o seguinte rastreamento de pilha:
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'set' object is not callable
Como posso consertar isso?
python
list
set
python-2.6
gath
fonte
fonte
TypeError: 'set' object is not callable
: O que éset
? Obrigadoset=set(first_list)
ou algo assim. Agoraset
é redefinido para este objeto definido, o que causaria esse erro. Tente novamente com um interpretador Python frescoRespostas:
Já é uma lista
Você quer algo como
EDIT: Saída do seu último comentário
Gostaria de saber se você fez algo parecido com isto:
fonte
([1,2,12,6])
e vocêlist(([1,2,12,6]))
obterá uma lista como[1,2,1,2,6]
Ao invés de:
Por que não atalho no processo:
Isso removerá os dupes da sua lista e retornará uma lista para você.
fonte
[EDITADO] Parece que você redefiniu "lista" anteriormente, usando-a como um nome de variável, assim:
E você vai conseguir
fonte
Sempre que você estiver preso nesse tipo de problema, tente encontrar o tipo de dados do elemento que deseja converter primeiro usando:
Então, use:
para convertê-lo em uma lista. Você pode usar a lista recém-criada como qualquer lista normal em python agora.
fonte
Basta digitar:
Isso transformará um conjunto no formato {'1', '2'} em uma lista no formato ['1', '2'].
fonte
Revise sua primeira linha. Seu rastreamento de pilha claramente não é do código que você colou aqui, então não sei exatamente o que você fez.
O que você queria era
set([1, 2, 3, 4])
.A exceção "não exigível" significa que você estava fazendo algo parecido
set()()
- tentando chamar umaset
instância.fonte
Não tenho certeza se você está criando um conjunto com essa
([1, 2])
sintaxe, e não uma lista. Para criar um conjunto, você deve usarset([1, 2])
.Esses colchetes estão apenas envolvendo sua expressão, como se você tivesse escrito:
Não é realmente ignorado, mas não faça nada à sua expressão.
Nota:
(something, something_else)
criará uma tupla (mas ainda não há lista).fonte
set
?Python é uma linguagem de tipo dinâmico, o que significa que você não pode definir o tipo da variável como faz em C ou C ++:
ou
No Python, você usa o cocing se alterar os tipos ou as funções init (construtores) dos tipos para declarar uma variável de um tipo:
lhe dará
<type 'set'>
uma resposta.Se você tiver uma lista, faça o seguinte:
fonte
Hmmm, aposto que em algumas linhas anteriores você tem algo como:
Estou errado ?
fonte
list
como igual ao conjunto de criaçãoset(values)
. E isso estava causando confusão. Sua resposta não deve ser rebaixada. Mas também não está enganando os leitores :) Estamos apenas passando despercebidos e vendo coisas erradas com votos negativos.