Python扩展了一个空列表错误?

时间:2009-02-14 20:28:55

标签: python list extend

为什么python 2.5.2具有以下行为

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

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

$ python --version
Python 2.5.2

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

2 个答案:

答案 0 :(得分:41)

Extend是一种列表方法,它修改它但不返回self(而是返回None)。如果您需要将修改后的值作为表达式值,请使用+,如[2]+[]中那样。

答案 1 :(得分:10)

完全。

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

他们故意这样做,以便您记住extend函数实际上就地修改了列表。与sort()相同。它总是返回None。