首页 > 解决方案 > 为什么 pop() 函数会更改字典的列表值,但 capitalize() 不能更改字符串值的大小写?

问题描述

我正在尝试更改值而不重新分配字典中的任何值。但似乎它适用于 pop 函数而不适用于字符串函数。

我尝试了其他列表函数,并且与 pop 一样工作。看起来列表和字符串在用作值时工作方式不同。

my_dict={"Rank":[1,2,3],"Name":"John"}
my_dict.get("Rank").pop()
print(my_dict)
my_dict.get("Name").capitalize()
print(my_dict)

标签: pythonpython-3.x

解决方案


my_dict.get("Rank")是一个可变列表,您只使用对它的引用。您对其所做的任何更改,包括pop(),都将反映在任何地方。

my_dict.get("Name")是一个不可变的字符串。您无法更改它,因此capitalize()将返回一个新字符串,而不是修改现有字符串。


推荐阅读