【发布时间】:2015-04-30 14:10:05
【问题描述】:
我不明白为什么在这个例子中,使用 .lower() 方法不会在没有赋值的情况下更改字符串,但是 .reverse() 方法会在没有赋值的情况下更改列表。某些数据类型是否需要分配才能更改,而其他数据类型不需要?为什么?谢谢。
a = "ABC"
a.lower()
b = [1, 2, 3]
b.reverse()
print(a)
print(b)
【问题讨论】:
-
因为字符串是不可变的,而列表是可变的。
-
你不能改变一个字符串对象,句号。您总是必须替换绑定的名称以指向一个新的字符串对象。
-
另外,有些方法不会改变它们的对象,即使这些对象是可变的。
-
这应该被否决。如果有人问OP做了什么,就不可能找到“原始”问题。如果有人这样做,那是因为他已经知道答案了。重定向到那个很好,但是这个问题应该被推广已经完成了。
标签: python