我有一本名为signames的python字典,其中包含数千个键值对。截短的版本:
signames = {'A_13342_2674_14_': '13342-2674-14.03-0-2-1', 'A_13342_2675_14_': '13342-2675-14.03-0-2-1', 'A_13342_2676_14_': '13342-2676-14.03-0-2-1'}
我想将字符_附加到python字典中所有值的开头,以便最终的字典看起来像:
signames = {'A_13342_2674_14_': '_13342-2674-14.03-0-2-1', 'A_13342_2675_14_': '_13342-2675-14.03-0-2-1', 'A_13342_2676_14_': '_13342-2676-14.03-0-2-1'}
我的代码没有错误,但不会更新值:
for key, value in signames.items():
key = str(_) + key
答案 0 :(得分:3)
您的key
变量在每次迭代中仅保存dict的每个键的值,如果为该键分配新值,则只会更新该key
变量,而不更新dict。您应该通过在每次作业中引用字典的键来更新字典本身:
for key in signames:
signames[key] = '_' + signames[key]
但是正如@jpp在评论中指出的那样,迭代遍历signames.items()
会更惯用,因为赋值中的表达式还涉及每个键的值:
for key, value in signames.items():
signames[key] = '_' + value
答案 1 :(得分:0)
您可以在此处进行经典的dict理解:
signames = {k: '_'+v for k,v in signames.items()}
答案 2 :(得分:0)
这是错误的key = str(_) + key
,因为signmaes
字典从未更新。只需将此行更改为signames[key] = '_' + value
。