擅长:python、mysql、java
<p>如果您将键函数分解为它自己的函数而不是使用lambda,那么可以更容易地准备键函数。你知道吗</p>
<p>此外,您可能希望在排序后使用<code>OrderedDict</code>来维护顺序:</p>
<pre class="lang-py prettyprint-override"><code>from collections import OrderedDict
def get_keylength(v):
key, values = v
return len(key), values[0]
d = {'ATCG': [1,2,3], 'ATTT':[1,3,5], 'GCT':[2,4,8], 'TCC': [4,5,6], 'AC': [7,8,9]}
od = OrderedDict(sorted(d.items(), key=get_keylength, reverse=True))
</code></pre>
<blockquote>
<p>OrderedDict([('ATCG', [1, 2, 3]), ('ATTT', [1, 3, 5]), ('TCC', [4, 5, 6]), ('GCT', [2, 4, 8]), ('AC', [7, 8, 9])])</p>
</blockquote>
<p>如果想要更干净的输出,可以使用<code>pprint</code>(漂亮的打印):</p>
<pre class="lang-py prettyprint-override"><code>import pprint
pprint.pprint(od)
OrderedDict([('ATCG', [1, 2, 3]),
('ATTT', [1, 3, 5]),
('TCC', [4, 5, 6]),
('GCT', [2, 4, 8]),
('AC', [7, 8, 9])])
# To get rid of OrderedDict you can convert back to a standard dictionary with `dict()`
pprint.pprint(dict(od))
{'AC': [7, 8, 9],
'ATCG': [1, 2, 3],
'ATTT': [1, 3, 5],
'GCT': [2, 4, 8],
'TCC': [4, 5, 6]}
</code></pre>