将Python字典中给定键的值替换为另一个给定键的值



我有一个像

这样的字典
dict = { '12' : '5+2',
'5' : 'xyz',
'2' : 'abc' }

所以我希望更新后的字典是

dict = { '12' : 'xyz+abc',
'5' : 'xyz',
'2' : 'abc' }

注意:我知道键'12'的值包含'5'和'2',因此不需要迭代,我只是想用xyz代替5,用abc代替2。请建议。

我会在字典推导中使用正则表达式:

dic = {'12' : '5+2', '5' : 'xyz', '2' : 'abc'}
import re
# create the regex from the keys
# use the longer strings first to match "12" before "2"
pattern = '|'.join(map(re.escape, sorted(dic, key=lambda x: -len(x))))
# '12|5|2'
out = {k:re.sub(pattern, lambda m: dic.get(m.group()), v) for k,v in dic.items()}

输出:

{'12': 'xyz+abc', '5': 'xyz', '2': 'abc'}

你只是做了一个链式重赋:

dict['<key2>'], dict['<key1>'] = dict['<key1>'], dict['<key2>']

这是一个交换操作。

也可以连接由键引用的字典值。在你的例子中:

dict1['12'] =  dict1['5'] + "+" + dict1['2']

我也会建议你不要使用python关键字,比如"dict"作为变量名。

相关内容

  • 没有找到相关文章

最新更新