我有以下列表,其中我尝试使用此代码将键的所有首字符更改为大写:
listOfNames = {
'tim':1,
'frank':1
}
for name in listOfNames.keys():
name = name.capitalize()
print(name)
我注意到,当我省略变量name
的分配时,如下所示:
for name in listOfNames.keys():
name.capitalize()
print(name)
它会打印出所有键,而不更改它们。现在,如果我正确理解,name
只是密钥的副本。但是我在该副本上运行了方法capitalize
。为什么我忘记了name = name.capitalize()
时却不返回大写键?
答案 0 :(得分:0)
由于字符串是不可变的,因此无法就地更改,因此调用:
name.capitalize() # or any other method
返回一个新字符串,而不是就地修改name
,要实现所需的功能,可以使用dict理解:
listOfNames = {
k.capitalize() : v for k, v in listOfNames.items()
}