按密钥长度排序字典

时间:2012-08-01 06:37:59

标签: python dictionary

  

可能重复:
  Dictionary sorting by key length

我需要使用字典进行“搜索和替换”。我希望它首先使用最长的键。

那样

text = 'xxxx'
dict = {'xxx' : '3','xx' : '2'} 
for key in dict:
    text = text.replace(key, dict[key])

应该返回“3x”,而不是现在的“22”。

这样的东西
for key in sorted(dict, ???key=lambda key: len(mydict[key])):

无法得到里面的东西。
是否可以用一个字符串做?

1 个答案:

答案 0 :(得分:19)

>>> text = 'xxxx'
>>> d = {'xxx' : '3','xx' : '2'}
>>> for k in sorted(d, key=len, reverse=True): # Through keys sorted by length
        text = text.replace(k, d[k])


>>> text
'3x'