如何在Python中将集合转换为列表?运用
a = set(["Blah", "Hello"])
a = list(a)
Run Code Online (Sandbox Code Playgroud)
不起作用.它给了我:
TypeError: 'set' object is not callable
Run Code Online (Sandbox Code Playgroud)
phi*_*hag 232
您的代码确实有效(使用cpython 2.4,2.5,2.6,2.7,3.1和3.2进行测试):
>>> a = set(["Blah", "Hello"])
>>> a = list(a) # You probably wrote a = list(a()) here or list = set() above
>>> a
['Blah', 'Hello']
Run Code Online (Sandbox Code Playgroud)
检查您是否list
意外覆盖:
>>> assert list == __builtins__.list
Run Code Online (Sandbox Code Playgroud)
Joh*_*ooy 68
您通过意外地将其用作变量名称来隐藏内置集,这是一种复制错误的简单方法
>>> set=set()
>>> set=set()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object is not callable
Run Code Online (Sandbox Code Playgroud)
第一行重新绑定设置为set的实例.第二行是试图调用当然失败的实例.
这是一个不太混乱的版本,为每个变量使用不同的名称.使用新的翻译
>>> a=set()
>>> b=a()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object is not callable
Run Code Online (Sandbox Code Playgroud)
希望很明显,调用a
是一个错误
Zha*_*wei 25
在你写之前你set(XXXXX)
已经使用"set"作为变量,例如
set = 90 #you have used "set" as an object
…
…
a = set(["Blah", "Hello"])
a = list(a)
Run Code Online (Sandbox Code Playgroud)
Nic*_*ick 14
这将有效:
>>> t = [1,1,2,2,3,3,4,5]
>>> print list(set(t))
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
但是,如果您使用"list"或"set"作为变量名称,您将获得:
TypeError: 'set' object is not callable
Run Code Online (Sandbox Code Playgroud)
例如:
>>> 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
Run Code Online (Sandbox Code Playgroud)
如果您使用"list"作为变量名称,则会出现相同的错误.
归档时间: |
|
查看次数: |
350347 次 |
最近记录: |