如何将一个集合转换为Python中的列表?
我想在Python 2.6中将一个集合转换成一个列表。 我正在使用这个语法:
first_list = [1,2,3,4] my_set=set(first_list) my_list = list(my_set)
但是,我得到以下堆栈跟踪:
Traceback (most recent call last): File "<console>", line 1, in <module> TypeError: 'set' object is not callable
我怎样才能解决这个问题?
这已经是一个列表
type(my_set) >>> <type 'list'>
你想要类似的东西吗?
my_set = set([1,2,3,4]) my_list = list(my_set) print my_list >> [1, 2, 3, 4]
编辑:你最后的评论的输出
>>> 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]
我想知道你是否做了这样的事情:
>>> set=set() >>> set([1,2]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable
代替:
first_list = [1,2,3,4] my_set=set(first_list) my_list = list(my_set)
为什么不简化stream程:
my_list = list(set([1,2,3,4])
这将删除你的名单,并返回一个列表给你。
[编辑]你似乎早些时候已经重新定义“列表”,使用它作为variables名称,如下所示:
list = set([1,2,3,4]) # oops #... first_list = [1,2,3,4] my_set=set(first_list) my_list = list(my_set)
你会得到的
Traceback (most recent call last): File "<console>", line 1, in <module> TypeError: 'set' object is not callable
无论什么时候遇到这种types的问题,尝试使用以下命令来首先查找要转换的元素的数据types:
type(my_set)
然后,使用:
list(my_set)
将其转换为列表。 你可以像Python中的任何普通列表一样使用新build列表。
检查你的第一行。 你的堆栈跟踪显然不是你粘贴在这里的代码,所以我不知道你做了什么。
>>> my_set=([1,2,3,4]) >>> my_set [1, 2, 3, 4] >>> type(my_set) <type 'list'> >>> list(my_set) [1, 2, 3, 4] >>> type(_) <type 'list'>
你想要的是set([1, 2, 3, 4])
。
>>> my_set = set([1, 2, 3, 4]) >>> my_set set([1, 2, 3, 4]) >>> type(my_set) <type 'set'> >>> list(my_set) [1, 2, 3, 4] >>> type(_) <type 'list'>
“不可调用”exception意味着你正在做一些像set()()
– 尝试调用一个set
实例。
我不确定你是用这个([1, 2])
语法创build一个集合,而是一个列表。 要创build一个集合,你应该使用set([1, 2])
。
这些括号只是包含你的表情,就像你会写:
if (condition1 and condition2 == 3): print something
有没有真的被忽视,但对你的expression没有做任何事情。
注意:( (something, something_else)
将创build一个元组(但仍然没有列表)。
Python是一种dynamictypes语言,这意味着您不能像在C或C ++中那样定义variables的types:
type variable = value
要么
type variable(value)
在Python中,如果更改types或强制types的init函数(构造函数)来声明一个types的variables,则使用强制:
my_set = set([1,2,3]) type my_set
会给你<type 'set'>
作答案。
如果你有一个列表,请执行以下操作:
my_list = [1,2,3] my_set = set(my_list)
嗯,我敢打赌,在一些以前的行中,你有这样的事情:
list = set(something)
我错了吗 ?