今天去參加了一個面試,面試的第一題就讓我很懵逼???問題是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
讓我含淚再去舔一遍源碼。。。。