为什么我需要在函数调用后分配这个变量?
Why do I need to assign this variable after call of function?
我有以下列表,其中我尝试使用此代码将键的所有第一个字符更改为大写:
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()
时 return 不是大写的键?
因为字符串是不可变的,它们不能就地改变,所以调用:
name.capitalize() # or any other method
returns 一个新字符串,而不是就地修改 name
,要实现你想要的,你可以使用字典理解:
listOfNames = {
k.capitalize() : v for k, v in listOfNames.items()
}
我有以下列表,其中我尝试使用此代码将键的所有第一个字符更改为大写:
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()
时 return 不是大写的键?
因为字符串是不可变的,它们不能就地改变,所以调用:
name.capitalize() # or any other method
returns 一个新字符串,而不是就地修改 name
,要实现你想要的,你可以使用字典理解:
listOfNames = {
k.capitalize() : v for k, v in listOfNames.items()
}