如何在Python字典中将字符串追加到现有值

vjhs03f7  于 2022-11-19  发布在  Python
关注(0)|答案(3)|浏览(131)

我有一个名为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'}

我想把character _附加到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
vc6uscn9

vc6uscn91#

您的key变量只保存每次迭代的dict的每个键的值,如果您为该键分配一个新值,它只更新该key变量,而不更新dict。您应该通过在每次分配中引用dict的键来更新dict本身:

for key in signames:
    signames[key] = '_' + signames[key]

但是正如@jpp在注解中指出的,迭代signames.items()会更符合习惯,因为赋值中的表达式还涉及每个键的值:

for key, value in signames.items():
    signames[key] = '_' + value
zkure5ic

zkure5ic2#

你可以在这里做经典的dict理解:

signames = {k: '_'+ v for k,v in signames.items()}
ltqd579y

ltqd579y3#

这是错误的key = str(_) + key,因为signmaes字典从未更新过。只需将此行更改为signames[key] = '_' + value

相关问题