我有字典
from collections import OrderedDict
md = {"r3":"piz","r1":"pic","r9":"piz","r12":"pic","r19":"lia","r2":"kurcc","r21":"jes","r99":"pic","r111":"kurcc","r116":"kurcc","r211":"ar","r221":"buc"}
print (OrderedDict(sorted(md.items(), key=lambda t: t[0])))
Run Code Online (Sandbox Code Playgroud)
我想从最低的数字中对它进行排序.但是我得到了
OrderedDict([('r1', 'pic'), ('r111', 'kurcc'), ('r116', 'kurcc'), ('r12', 'pic'), ('r19', 'lia'), ('r2', 'kurcc'), ('r21', 'jes'), ('r211', 'ar'), ('r221', 'buc'), ('r3', 'piz'), ('r9', 'piz'), ('r99', 'pic')])
Run Code Online (Sandbox Code Playgroud)
我应该如何更改代码以使r1,r2,r3顺序?
如果所有键都是'r???'带???整数的形式,我们可以使用以下排序键:
OrderedDict(sorted(md.items(), key=lambda t: int(t[0][1:])))Run Code Online (Sandbox Code Playgroud)
所以在这里我们首先t[0]像你自己一样拿钥匙.接下来我们采用从索引1开始的子字符串(所以我们放弃'r'),最后我们将其转换int(..)为a进行数值比较.
这会产生:
>>> OrderedDict(sorted(md.items(), key=lambda t: int(t[0][1:])))
OrderedDict([('r1', 'pic'), ('r2', 'kurcc'), ('r3', 'piz'), ('r9', 'piz'), ('r12', 'pic'), ('r19', 'lia'), ('r21', 'jes'), ('r99', 'pic'), ('r111', 'kurcc'), ('r116', 'kurcc'), ('r211', 'ar'), ('r221', 'buc')])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |