之间有什么区别
theList + [4]
和
theList.append(4)
他们都将索引4处的项目添加到'theList'?但是,我的导师说2?之间有一个特定的区别?
答案 0 :(得分:2)
第一段代码创建一个新列表,其中包含theList
和4
中的所有项目:
>>> theList = [1, 2, 3]
>>> theList + [4] # This creates a new list
[1, 2, 3, 4]
>>> theList # theList is unchanged
[1, 2, 3]
>>>
第二部分通过在其末尾添加theList
来改变 4
:
>>> theList = [1, 2, 3]
>>> theList.append(4) # This does not create a new list
>>> theList # theList is changed
[1, 2, 3, 4]
>>>
答案 1 :(得分:0)
拥有此代码:
L = [1]
print id(L) # 36529288
L = L + [4]
print id(L) # 36579976
您可以看到两个id
都不同,因为这种附加元素的方式,会创建一个新列表。
在此:
L = [1]
print id(L) # 37119112
L.append(4)
print id(L) # 37119112
列表就地修改(不会创建新列表)。
答案 2 :(得分:0)
这个连接两个列表。请注意,theList
未被修改。
theList + [4]
此处将4
添加到theList
theList.append(4)
答案 3 :(得分:0)
一个是表达式,另一个是声明。第一个评估到一个新列表,其中列表的内容最后为4。如果您稍后引用该列表,它将不包含4。
相反,第二个实际上改变了List并给它一个新值,这是它添加了4的旧值。
答案 4 :(得分:-1)
两者之间存在空格差异。如果可能的话,最好做List.append(4),因为它避免了创建新列表的开销:
>>>import sys
>>>sys.getsizeof([4])
80
>>>sys.getsizeof(4)
24