你得到None
因爲那是什麼extend
是專門用來做的。關於Python的好處之一是它是一種自我記錄的語言,可以爲您提供有關如何使用其內置函數的信息。
在你的Python解釋器中試試這個。做一個清單:
mammals = ['aardvark', 'bear', 'cat']
現在寫下如下,沒有括號或任何東西。正是如此:
mammals.extend
Python解釋器打印出mammals.extend
。不是致電extend
的結果,而是extend
本身的值。
<built-in method extend of list object at 0x102939fc8>
這是extend
的字符串表示形式。我們可以看到這是附加到列表的方法。
現在做到這一點:
print(mammals.extend.__doc__)
你會得到一個不錯的文檔字符串。所有內置方法都有一個__doc__
屬性,您可以在不確定工作方式時打印出來。
在這種情況下,你會看到你的問題的答案。
L.extend(iterable) -> None -- extend list by appending elements from the iterable
這就告訴我們,在調用extend
的結果是None
。
當你寫的功能,您可以使自己的文檔字符串。把你的簡要文檔放到函數第一行的一個字符串中,當你或其他人使用你的代碼在你的函數上調用__doc__
時,這個字符串會神奇地返回。就像這樣:
def double(s):
"""double(s): Returns the concatenation of the string with itself."""
return s+s
double("banana") # Test our new function.
print(double.__doc__) # Get the doc string.
你可能對一個空字符串調用extend
,順便說一句:
print([].extend.__doc__)
這會給你同樣的文檔字符串,因爲extend
是每一個列表的方法。
如果要粘合兩個列表一起,做到以下幾點。
mammals = ['aardvark', 'bear', 'cat']
more_mammals = ['dog', 'elephant', 'giraffe']
all_mammals = mammals + more_mammals
print(all_mammals)
可以使用+=
操盤extend
。這條線:
mammals += more_mammals
具有與該行相同的效果:
mammals.extend(more_mammals)
小心像+=
該修改的列表操作。這可能並不總是你想要的。
爲了保持名單,因爲他們,做一個新的列表與+
,連接操作符,就像我們前面看到的。
all_mammals = mammals + more_mammals
如果你不關心的mammals
舊值和你真的想將其與延伸,繼續使用+=
。
你回顧下面的答案,找到了一個能夠滿足您的需求? – 2014-11-24 06:01:39