可能重复:
按密钥长度排序字典
我需要使用字典"搜索和替换".我希望它首先使用最长的键.
以便
text = 'xxxx'
dict = {'xxx' : '3','xx' : '2'}
for key in dict:
text = text.replace(key, dict[key])
Run Code Online (Sandbox Code Playgroud)
应该返回"3x",而不是现在的"22".
就像是
for key in sorted(dict, ???key=lambda key: len(mydict[key])):
Run Code Online (Sandbox Code Playgroud)
只是无法得到里面的东西.
有可能用一个字符串吗?
任何人都知道如何按密钥长度对这本字典进行排序?
{
'http://ccc.com/viewvc/' : [{'type': 'web-servers', 'app': 'Apache', 'ver': '2.2.14'}, {'type': 'operating-systems', 'app': 'Ubuntu', 'ver': None}],
'http://bbb.com/' : [{'type': 'web-servers', 'app': 'Apache', 'ver': '2.2.22'}, {'type': 'programming-languages', 'app': 'PHP', 'ver': '5.3.10'}, {'type': 'cms', 'app': 'Drupal', 'ver': None}, {'type': 'operating-systems', 'app': 'Ubuntu', 'ver': None}, {'type': 'javascript-frameworks', 'app': 'jQuery', 'ver': None}, {'type': 'captchas', 'app': 'Mollom', 'ver': None}]
}
Run Code Online (Sandbox Code Playgroud)
预期产量:
{
'http://bbb.com/' : [{'type': 'web-servers', 'app': 'Apache', 'ver': '2.2.22'}, {'type': 'programming-languages', 'app': 'PHP', 'ver': '5.3.10'}, {'type': 'cms', 'app': 'Drupal', 'ver': None}, {'type': 'operating-systems', 'app': …Run Code Online (Sandbox Code Playgroud)