「作者主頁(yè)」:士別三日wyx
「作者簡(jiǎn)介」:CSDN top100、阿里云博客專家、華為云享專家、網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者
「推薦專欄」:小白零基礎(chǔ)《Python入門到精通》
extend() 可以在列表末尾「添加」另一個(gè)「序列」中的值。
語(yǔ)法
list.extend( iterable )
參數(shù)
- iterable :需要添加的元素列表
返回值
- 沒有返回值,只是修改原來(lái)的列表
實(shí)例:向列表中添加另一個(gè)列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1)
輸出:
[1, 2, 3, 4, 5, 6]
1、可以接收的參數(shù)
extend() 接收的參數(shù)類型是「可迭代對(duì)象」,任何具有_iter_()
或_getitem_()
方法的對(duì)象都是可迭代對(duì)象,Python內(nèi)了很多可迭代對(duì)象,常見的有 list,str,tuple,dict。
1.1、添加字符串
extend() 可以添加「字符串」類型的數(shù)據(jù),字符串的每一個(gè)「字符」,都被當(dāng)做一個(gè)新「元素」。
list1 = [1, 2, 3]
str1 = 'abc'
list1.extend(str1)
print(list1)
輸出:
[1, 2, 3, 'a', 'b', 'c']
1.2、添加元組
extend() 可以添加「元組」類型的數(shù)據(jù),和添加列表類似,每個(gè)「元素」都被當(dāng)做一個(gè)新元素。
list1 = [1, 2, 3]
tuple1 = (4, 5, 6)
list1.extend(tuple1)
print(list1)
輸出:
[1, 2, 3, 4, 5, 6]
1.3、添加字典
extend() 可以添加「字典」類型的數(shù)據(jù),只添加鍵,每一個(gè)「鍵」都被當(dāng)做一個(gè)新「元素」。
list1 = [1, 2, 3]
dict1 = {'key1': 1, 'key2': 2}
list1.extend(dict1)
print(list1)
輸出:
[1, 2, 3, 'key1', 'key2']
2、原理解析
extend() 只是將元素追加在列表「末尾」,本質(zhì)上是 “修改” 而不是 “增加”,不會(huì)創(chuàng)建新的列表。
我們打印添加前、后的內(nèi)存地址可以發(fā)現(xiàn),「內(nèi)存地址」沒有變,還是原來(lái)的那個(gè)列表。
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(id(list1))
list1.extend(list2)
print(id(list1))
輸出:
1930566508928
1930566508928
extend() 在添加其他類型時(shí),會(huì)先轉(zhuǎn)換成 list,再添加元素,類似下面這樣:
list1 = [1, 2, 3]
str1 = 'abc'
list2 = list(str1)
print(list2)
list1.extend(list2)
print(list1)
輸出:
['a', 'b', 'c']
[1, 2, 3, 'a', 'b', 'c']
3、extend() 和 append()、+ 的區(qū)別?
以添加列表為例
extend() 添加列表,是將列表中的「每個(gè)元素」都當(dāng)做一個(gè)新元素,添加到原來(lái)的列表中
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1)
輸出:
[1, 2, 3, 4, 5, 6]
append() 添加列表,是將「>整個(gè)列表」當(dāng)做一個(gè)新元素,添加到原來(lái)的列表中
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.append(list2)
print(list1)
輸出:
[1, 2, 3, [4, 5, 6]]
+
會(huì)「拼接」元素,并創(chuàng)建一個(gè)新的列表存放,內(nèi)存地址會(huì)改變
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(id(list1))
print(id(list2))
print(id(list1 + list2))
輸出:
2680876376448
2680876376576
2680878544128
+=
的效果跟 extend() 一樣,每個(gè)元素都被當(dāng)做一個(gè)新元素,并且不會(huì)改變內(nèi)存
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(id(list1))
list1 += list2
print(list1)
print(id(list1))
輸出:
2150265921856
[1, 2, 3, 4, 5, 6]
2150265921856
4、特殊的添加方式
配合算術(shù)「運(yùn)算符」添加列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2 * 2)
print(list1)
list1.extend(list1 + list2)
print(list1)
輸出:
[1, 2, 3, 4, 5, 6, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 4, 5, 6, 1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6]
「索引」取值添加列表文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-578118.html
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2[1:2])
print(list1)
輸出:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-578118.html
[1, 2, 3, 5]
到了這里,關(guān)于Python 列表 extend()函數(shù)使用詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!