今天去参加了一个面试,面试的第一题就让我很懵逼???问题是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
让我含泪再去舔一遍源码。。。。