字典在创建完成后,其中的键能不能再修改呢?

首先我创建了一个字典,并特意将里面的多加了空格

favourite_language = {
“Jeniff “: “Python”,
“ Sarah”: “C”,
“Edward “: “Ruby”,
“Phil “: “Python”}

然后我尝试着希望去除这些空格。
这里我的思路是:把都修改后储存在临时变量里的。

for name in favourite_language.keys():
name = (name.strip()).lower()
print(“\n\t “ + str(favourite_language))

但是输出结果还是会出现空格
如下:

{‘Jeniff ‘: ‘Python’, ‘ Sarah’: ‘C’, ‘Edward ‘: ‘Ruby’, ‘Phil ‘: ‘Python’}

如题,我的疑惑在于:

#1.字典中的键还可以再修改吗?

##2.若还可以修改,我的修改方式不恰当的地方在哪里呢?

烦请大家多指教,谢谢。

Jason990420
最佳答案

更新字典

  1. 键不能修改, 所以要删除原键, 再添加新键
  2. 以原字典迭代, 不可修改, 只能另建一个新的字典, 或者深层复制字典来更新.
favourite_language = {
    "Jeniff ": "Python",
    " Sarah" : "C",
    "Edward ": "Ruby",
    "Phil "  : "Python"}

new_dict = {key.strip().lower():value
    for key, value in favourite_language.items()}
>>> new_dict
{'edward': 'Ruby', 'jeniff': 'Python', 'phil': 'Python', 'sarah': 'C'}
3年前 评论
讨论数量: 2
Jason990420

更新字典

  1. 键不能修改, 所以要删除原键, 再添加新键
  2. 以原字典迭代, 不可修改, 只能另建一个新的字典, 或者深层复制字典来更新.
favourite_language = {
    "Jeniff ": "Python",
    " Sarah" : "C",
    "Edward ": "Ruby",
    "Phil "  : "Python"}

new_dict = {key.strip().lower():value
    for key, value in favourite_language.items()}
>>> new_dict
{'edward': 'Ruby', 'jeniff': 'Python', 'phil': 'Python', 'sarah': 'C'}
3年前 评论

用如一楼那样的字典推导式语法或者按照你的直接for循环,但是是创建新字典,不能在原有字典的键上做修改:

In [41]: new_dict = {}
In [42]: for key, value in favourite_language.items():
    ...:     new_dict.update({key.strip(): value})
In [43]: new_dict
Out[43]:
{'jeniff': 'Python',
 'sarah': 'C',
 'edward': 'Ruby',
 'phil': 'Python'}
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!