159 Como posso converter um conjunto em uma lista em Python? Usando a = set(["Blah", "Hello"]) a = list(a) não funciona Isso me dá: TypeError: 'set' object is not callable python list set fonte 6 O acima funciona para mim no Python 2.7. 26611 aukaost 20 se você nomeou outra variável em seu código, setaltere-a porque você está sombreando a função interna set. Mouad 5 @mouad Não, a string entre parênteses no um TypeErroré o nome do tipo , não o nome da variável phihag 7 @ Juiz John Deed: Você fez em list = some_setalgum lugar. Adicione print listantes de chamá-lo. Jochen Ritzel 6 Eu encontrei esse problema durante a depuração no PDB, onde 'list' é substituído como um comando PDB. WP McNeill Respostas: 242 O seu código faz trabalho (testado com CPython 2.4, 2.5, 2.6, 2.7, 3.1 e 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Verifique se você não substituiu listpor acidente: >>> assert list == __builtins__.list phihag fonte 2 Acabei de copiar e colar esse código exato no IDLE; Eu recebo o erro. Você pode fornecer a saída de dir(set)e print set? Susam Pal 26/07 ['and', 'class', 'cmp', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'iand', 'init', 'ior', 'isub', 'iter', 'ixor', 'le', 'len', 'lt', 'ne', 'new', 'or', 'rand', 'reduce', 'reduce_ex', 'repr', 'ror', 'rsub', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'xor', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'](removeu __ por causa do limite de caracteres) # @ Juiz John Deed Em que linha você recebe o erro? Você setparece bem. ## phihag # tente Set vez de set: REF: docs.python.org/2/library/sets.html Gonzalo 72 Você sombreado o conjunto interno usando-o acidentalmente como um nome de variável. Aqui está uma maneira simples de replicar seu erro >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable A primeira linha é reconectada para uma instância do conjunto. A segunda linha está tentando chamar a instância que obviamente falha. Aqui está uma versão menos confusa, usando nomes diferentes para cada variável. Usando um intérprete novo >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Espero que seja óbvio que chamar aé um erro John La Rooy fonte 25 Antes de escrever, set(XXXXX) você usou "set" como uma variável, por exemplo set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei fonte 15 Isso funcionará: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] No entanto, se você usou "list" ou "set" como um nome de variável, obterá: TypeError: 'set' object is not callable por exemplo: >>> set = [1,1,2,2,3,3,4,5] >>> print list(set(set)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'list' object is not callable O mesmo erro ocorrerá se você tiver usado "lista" como um nome de variável. usuario fonte 6 s = set([1,2,3]) print [ x for x in iter(s) ] peerxu fonte 4 Seu código funciona com o Python 3.2.1 no Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen fonte 2 Tente usar a combinação das funções map e lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) É uma abordagem muito conveniente se você tiver um conjunto de números na string e desejar convertê-lo em uma lista de números inteiros: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE fonte
242 O seu código faz trabalho (testado com CPython 2.4, 2.5, 2.6, 2.7, 3.1 e 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Verifique se você não substituiu listpor acidente: >>> assert list == __builtins__.list phihag fonte 2 Acabei de copiar e colar esse código exato no IDLE; Eu recebo o erro. Você pode fornecer a saída de dir(set)e print set? Susam Pal 26/07 ['and', 'class', 'cmp', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'iand', 'init', 'ior', 'isub', 'iter', 'ixor', 'le', 'len', 'lt', 'ne', 'new', 'or', 'rand', 'reduce', 'reduce_ex', 'repr', 'ror', 'rsub', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'xor', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'](removeu __ por causa do limite de caracteres) # @ Juiz John Deed Em que linha você recebe o erro? Você setparece bem. ## phihag # tente Set vez de set: REF: docs.python.org/2/library/sets.html Gonzalo 72 Você sombreado o conjunto interno usando-o acidentalmente como um nome de variável. Aqui está uma maneira simples de replicar seu erro >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable A primeira linha é reconectada para uma instância do conjunto. A segunda linha está tentando chamar a instância que obviamente falha. Aqui está uma versão menos confusa, usando nomes diferentes para cada variável. Usando um intérprete novo >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Espero que seja óbvio que chamar aé um erro John La Rooy fonte 25 Antes de escrever, set(XXXXX) você usou "set" como uma variável, por exemplo set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei fonte 15 Isso funcionará: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] No entanto, se você usou "list" ou "set" como um nome de variável, obterá: TypeError: 'set' object is not callable por exemplo: >>> set = [1,1,2,2,3,3,4,5] >>> print list(set(set)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'list' object is not callable O mesmo erro ocorrerá se você tiver usado "lista" como um nome de variável. usuario fonte 6 s = set([1,2,3]) print [ x for x in iter(s) ] peerxu fonte 4 Seu código funciona com o Python 3.2.1 no Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen fonte 2 Tente usar a combinação das funções map e lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) É uma abordagem muito conveniente se você tiver um conjunto de números na string e desejar convertê-lo em uma lista de números inteiros: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE fonte
72 Você sombreado o conjunto interno usando-o acidentalmente como um nome de variável. Aqui está uma maneira simples de replicar seu erro >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable A primeira linha é reconectada para uma instância do conjunto. A segunda linha está tentando chamar a instância que obviamente falha. Aqui está uma versão menos confusa, usando nomes diferentes para cada variável. Usando um intérprete novo >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Espero que seja óbvio que chamar aé um erro John La Rooy fonte
25 Antes de escrever, set(XXXXX) você usou "set" como uma variável, por exemplo set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei fonte
15 Isso funcionará: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] No entanto, se você usou "list" ou "set" como um nome de variável, obterá: TypeError: 'set' object is not callable por exemplo: >>> set = [1,1,2,2,3,3,4,5] >>> print list(set(set)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'list' object is not callable O mesmo erro ocorrerá se você tiver usado "lista" como um nome de variável. usuario fonte
4 Seu código funciona com o Python 3.2.1 no Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen fonte
2 Tente usar a combinação das funções map e lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) É uma abordagem muito conveniente se você tiver um conjunto de números na string e desejar convertê-lo em uma lista de números inteiros: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE fonte
set
altere-a porque você está sombreando a função internaset
.TypeError
é o nome do tipo , não o nome da variávellist = some_set
algum lugar. Adicioneprint list
antes de chamá-lo.Respostas:
O seu código faz trabalho (testado com CPython 2.4, 2.5, 2.6, 2.7, 3.1 e 3.2):
Verifique se você não substituiu
list
por acidente:fonte
dir(set)
eprint set
?['and', 'class', 'cmp', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'iand', 'init', 'ior', 'isub', 'iter', 'ixor', 'le', 'len', 'lt', 'ne', 'new', 'or', 'rand', 'reduce', 'reduce_ex', 'repr', 'ror', 'rsub', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'xor', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
(removeu __ por causa do limite de caracteres) #set
parece bem.Você sombreado o conjunto interno usando-o acidentalmente como um nome de variável. Aqui está uma maneira simples de replicar seu erro
A primeira linha é reconectada para uma instância do conjunto. A segunda linha está tentando chamar a instância que obviamente falha.
Aqui está uma versão menos confusa, usando nomes diferentes para cada variável. Usando um intérprete novo
Espero que seja óbvio que chamar
a
é um errofonte
Antes de escrever,
set(XXXXX)
você usou "set" como uma variável, por exemplofonte
Isso funcionará:
No entanto, se você usou "list" ou "set" como um nome de variável, obterá:
por exemplo:
O mesmo erro ocorrerá se você tiver usado "lista" como um nome de variável.
fonte
fonte
Seu código funciona com o Python 3.2.1 no Win7 x64
fonte
Tente usar a combinação das funções map e lambda:
É uma abordagem muito conveniente se você tiver um conjunto de números na string e desejar convertê-lo em uma lista de números inteiros:
fonte