擅长:python、mysql、java
<p>一种可能是扩展您的方法,在创建排序键时显式地划分字母和数字:</p>
<pre><code>d = {
'a1': 3,
'a2': 2,
'b1': 2,
'b2': 3,
'c1': 5,
'a1 b2': 3,
'a2 b1': 2,
'a1 c1': 3,
'a2 c1': 2,
'b1 c1': 2,
'b2 c1': 3,
'a1 b2 c1': 3,
'a2 b1 c1': 2
}
def fn(key):
letters = key[0::3] #extract the "letter" part of the key
idx = key[1::3] #extract the "numeric" part of the key
#construct the composite key
return (len(letters), letters, idx)
for key in sorted(d.keys(), key = fn):
print(key, d[key])
</code></pre>
<p>生产</p>
^{pr2}$