擅长:python、mysql、java
<p>您可以将dict改为<a href="https://docs.python.org/2/library/collections.html#ordereddict-examples-and-recipes" rel="nofollow">OrderedDict</a>:</p>
<pre><code>import collections, re
d = {"key1" : 'object', "key11" : 'object', "key2" : 'object', "key22" : 'object', "jay1" : 'object', "jay2" : 'object'}
my_fun = lambda k,v: [k, int(v)]
d2 = collections.OrderedDict(sorted(d.items(), key=lambda t: my_fun(*re.match(r'([a-zA-Z]+)(\d+)',t[0]).groups())))
print(d2)
#reslt: OrderedDict([('jay1', 'object'), ('jay2', 'object'), ('key1', 'object'), ('key11', 'object'), ('key2', 'object'), ('key22', 'object')])
</code></pre>
<p>基本上,这里发生了什么,我把字符串分成“字符串”部分和数字部分。数字部分改为<code>int</code>,排序使用这两个值进行。在</p>