如何在python中将一个集转换为一个列表?

gat*_*ath 136 python list set python-2.6

我试图将一个集转换为Python 2.6中的列表.我正在使用这种语法:

first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下堆栈跟踪:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: 'set' object is not callable
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

use*_*ser 183

它已经是一个列表了

type(my_set)
>>> <type 'list'>
Run Code Online (Sandbox Code Playgroud)

你想要的东西吗?

my_set = set([1,2,3,4])
my_list = list(my_set)
print my_list
>> [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

编辑:输出您的上一条评论

>>> my_list = [1,2,3,4]
>>> my_set = set(my_list)
>>> my_new_list = list(my_set)
>>> print my_new_list
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

我想知道你是否做过这样的事情:

>>> set=set()
>>> set([1,2])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object is not callable
Run Code Online (Sandbox Code Playgroud)

  • 当我输入(my_set)时,我得到<type'set'> (4认同)
  • @gath,那是在您编辑代码之前。您当前的代码在我的机器上可以正常工作。您可以尝试将其直接复制粘贴到python解释器中,然后将输出粘贴到此处吗 (2认同)

小智 12

代替:

first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
Run Code Online (Sandbox Code Playgroud)

为什么不简化流程:

my_list = list(set([1,2,3,4])
Run Code Online (Sandbox Code Playgroud)

这将从您列表中删除欺骗并将列表返回给您.

  • 两者之间没有区别.您刚刚内联了变量分配. (4认同)

Rus*_*sky 7

[已编辑]似乎您之前已重新定义"list",将其用作变量名称,如下所示:

list = set([1,2,3,4]) # oops
#...
first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
Run Code Online (Sandbox Code Playgroud)

而且你会得到

Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: 'set' object is not callable
Run Code Online (Sandbox Code Playgroud)


Paw*_*mar 5

每当您遇到此类问题时,请尝试使用以下命令找到要首先转换的元素的数据类型:

type(my_set)
Run Code Online (Sandbox Code Playgroud)

然后,使用:

  list(my_set) 
Run Code Online (Sandbox Code Playgroud)

将其转换为列表。您现在可以像使用 python 中的任何普通列表一样使用新建的列表。


小智 5

只需输入:

list(my_set)
Run Code Online (Sandbox Code Playgroud)

这会将 {'1','2'} 形式的集合转换为 ['1','2'] 形式的列表。