20
爲什麼蟒蛇2.5.2有下列行爲Python擴展爲空列表錯誤?
>>>[2].extend([]) == [2]
False
>>> [2].extend([]) == None
True
$ python --version
Python 2.5.2
我認爲我不理解這裏的東西,但我直覺會認爲[2] .extend([])應該產生[2]
爲什麼蟒蛇2.5.2有下列行爲Python擴展爲空列表錯誤?
>>>[2].extend([]) == [2]
False
>>> [2].extend([]) == None
True
$ python --version
Python 2.5.2
我認爲我不理解這裏的東西,但我直覺會認爲[2] .extend([])應該產生[2]
擴展是列表的一種方法,它修改它,但不返回self
(改爲返回None
)。如果需要將修改後的值作爲表達式值,請使用+
,如[2]+[]
中所示。
沒錯。
>>> x = [2]
>>> x.extend([]) # Nothing is printed because the return value is None
>>> x == [2]
True
>>> x
[2]
他們這樣做的目的是讓你記住擴展函數實際上是在原地修改列表。與sort()相同。它總是返回None。
有翻譯的人需要直覺嗎?只需`print [2] .extend([])`。 – tzot 2009-02-14 23:20:55