python中append 、+ 和extend的區(qū)別

當(dāng)我我們在使用List的擴(kuò)展操作時(shí)候,常常會(huì)用到append方法和+運(yùn)算符,不注意他們之間的區(qū)別常常會(huì)導(dǎo)致錯(cuò)誤,下面舉例說明他們的錯(cuò)誤

1)append:

s1 = [1,2,3]
s2 = [4]
s1.append(s2)
s1.append({'1':'2'})
print(s1)

輸出如下

[1,2,3,[4],{'1':'2'}]
  1. 使用append相當(dāng)把整個(gè)s2當(dāng)做List中的元素的內(nèi)容,相當(dāng)于把[s2]添加到了s1中。如果用print(s1.append(s2))輸出的為None;用test =s1.append(s2)在print(s2)得到還是None,因?yàn)閍ppend操作是在原List上的修改,不會(huì)返回一個(gè)新的值
  2. append 操作可以向List中添加任何元素,比如字典,不過字典整體作為List中的一個(gè)元素(比如上面字典的{})

2)+運(yùn)算:

s1 = [1,2,3]
s2 = [4]
print(s1+s2)

結(jié)果如下

[1,2,3,4]

+運(yùn)算是對(duì)于兩個(gè)類型相同的變量之間的運(yùn)算,不改變原有的變量,并返回一個(gè)新的值,是內(nèi)容之間的拼接

3)extend:

s1 = [1,2,3]
s2 = [4]
s1.extend(s2)
print(s1)
s3 = 'abc'
s1.extend(s3))
print(s1)
s4 = {'age':12,'height':180}
s1.extend(s4)
print(s1)

輸出如下:

[1, 2, 3, 4]
[1, 2, 3, 4, 'a', 'b', 'c']
[1, 2, 3, 4, 'a', 'b', 'c', 'height', 'age']

extend 也是在原有List上進(jìn)行修改,沒有返回值,可以擴(kuò)展不同類型的變量,并將其內(nèi)容以List變量的形式加入到原List中。
從輸出中可見如果extend的是字符串,則字符串會(huì)被拆分成字符數(shù)組,如果extend的是字典,則字典的key會(huì)被加入到List中

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容