这两件事之间的区别

时间:2014-06-15 22:46:20

标签: python

之间有什么区别
theList + [4] 

theList.append(4)

他们都将索引4处的项目添加到'theList'?但是,我的导师说2?之间有一个特定的区别?

5 个答案:

答案 0 :(得分:2)

第一段代码创建一个新列表,其中包含theList4中的所有项目:

>>> 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
相关问题