29

为什么python 2.5.2会有以下行为

>>>[2].extend([]) == [2]
False

>>> [2].extend([]) == None
True

$ python --version
Python 2.5.2

我假设我在这里不理解某些东西,但直觉上我认为 [2].extend([]) 应该产生 [2]

4

2 回答 2

49

Extend 是 list 的一种方法,它修改它但不返回selfNone而是返回)。如果您需要修改后的值作为表达式值,请使用+,如[2]+[]

于 2009-02-14T20:33:03.617 回答
14

确切地。

>>> x = [2]
>>> x.extend([]) # Nothing is printed because the return value is None
>>> x == [2]
True
>>> x
[2]

他们故意这样做是为了让您记住扩展函数实际上是在原地修改列表。与 sort() 相同。它总是返回无。

于 2009-02-14T20:35:32.113 回答