我一有机会就教基本的 python,我想展示我们如何轻松生成每种类型的值,如下所示:
>>> l = [bool,int,float,str,list,tuple,set,dict]
>>> o = [f() for f in l]
>>> o
[False, 0, 0.0, '', [], (), set([]), {}]
然后我想我是否可以以某种方式向列表中添加一个 None
项目,所以我这样做了,但我得到了意外的异常:
>>> o = [f() for f in l, None]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
在这里,由于将列表理解与另一个值相结合,我预计最多会出现一个SyntaxError
,但由于某种原因我得到了那个TypeError: 'list' object is not callable
为什么会出现这个错误?什么样的求值顺序会导致 Python 认为我想调用一个 list
?
在您的列表 comp [f() for f in l, None]
中,它遍历可迭代的 l, None
或显式 (l, None )
这是一个元组。元组中索引 0 处的项目是 l ,您将其定义为列表,因此不能将其称为 f()
我是一名优秀的程序员,十分优秀!