Python 中 append 和 extend 的區別

參考連接

list.append(object) 向列表中添加一個對象 object
list.extend(sequence) 把一個序列 seq 的內容添加到列表中

注意:這兩個函數會把空 list 添加到原 list 中

>>> a = ['aa','bb']
>>> b = []
>>> a.append(b)
['aa','bb',[]]
>>> a = ['aa','bb']
>>> a.extend(b)
['aa','bb',[]]
# 說明 extend, append 都將空 list 添加到原 list 中了
#
# append 添加對象(即整體添加進去)
>>> a = ['aa','bb']
>>> b = ['cc','dd']
>>> a.append(b)
>>> a
['aa','bb',['cc','dd']]   # 注意還保留的中括號
>>> a = ['aa','bb']
>>> b = ['cc','dd']
>>> a.extend(b)
>>> a
['aa','bb','cc','dd']   # 注意裏面沒有中括號

# 需要理解 extend 是把 seq 的內容添加到裏面(按內容逐個添加),注意下面幾個區別
>>> a = ['aa','bb']
>>> a.append('cc')
>>> a
['aa','bb','cc']   # 把 'cc' 以對象形式添加(整體添加)
>>> a = ['aa','bb']
>>> a.extend('cc')
>>> a
['aa','cc','c','c']     # 按 seq 內容添加,'cc' 被認爲是序列,序列裏元素逐個添加
>>> a = ['aa','bb']
>>> a.extend(['cc'])   # 添加一個 list, 只有一個元素
>>> a
['aa','bb','cc']     # 逐個添加 list 中的元素
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章