python中使用+號合併列表與使用extend合併列表的區別

今天去參加了一個面試,面試的第一題就讓我很懵逼???問題是list1 = list1+list2與list1.extend(list2)的區別
當時我心裏想,這不都是一樣的操嗎?不都是合併兩個列表嗎?你要是說字符串的+操作與join操作我還能balabala一大堆。
面試結束後,我又去看了一遍源碼?????然後動手實操了一下??當時我的心情跟吃了X一樣。第一個操作返回了一個新的list對象,而extend則是對原本的對象進行操作。emmm。

list1 = [1, 2]
list2 = [1, 3]
print("list1:", id(list1), "list2:", id(list2))
list1.extend(list2)
print("list1:", id(list1))

list1: 1354008632648 list2: 1354003229256
list1: 1354008632648
list1 = [1, 2]
list2 = [1, 3]
print("list1:", id(list1), "list2:", id(list2))
list1 = list1 + list2
print("list1:", id(list1))

list1: 1783377829128 list2: 1783372421896
list1: 1783377699528

讓我含淚再去舔一遍源碼。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章