我真的在改变名单吗?

时间:2018-02-08 19:34:36

标签: python list mutation

说我给了一个清单

lst1 = [1,2,3,4]
removed_item = lst1.pop()
lst1.append(removed_item)

我已暂时更改了这些值,但是在运行后我已将所有内容恢复正常。这被认为是在改变名单吗?

2 个答案:

答案 0 :(得分:2)

是的,因为你删除了一个项目(改变了列表),然后重新附加它(再次改变列表......)。

答案 1 :(得分:0)

列表是可变的,字符串不是。运行此代码,您将得到答案

lst1 = [1,2,3,4]
print(id(lst1))
removed_item = lst1.pop()
print(id(lst1))
lst1.append(removed_item)
print(id(lst1))

str1 = "a string"
print(id(str1))
removed_item = str1[-1]
str1 = str1[:-1]
print(id(str1))
str1 += removed_item
print(id(str1))