擅长:python、mysql、java
<p>您可以使用<code>collections.defaultdict</code>创建一个字典,根据每个项的长度存储它们:</p>
<pre><code>from collections import defaultdict
d = defaultdict(list)
words = {'apple', 'plum', 'pear', 'peach', 'orange', 'cherry', 'quince'}
for word in words:
d[len(word)].append(word)
final_data = {a:sorted(b) for a, b in d.items()}
</code></pre>
<p>输出:</p>
<pre><code>{4: ['pear', 'plum'], 5: ['apple', 'peach'], 6: ['cherry', 'orange', 'quince']}
</code></pre>
<p>此外,<code>itertools.groupby</code>可用于较短的解决方案:</p>
<pre><code>import itertools
words = {'apple', 'plum', 'pear', 'peach', 'orange', 'cherry', 'quince'}
new_words = {a:sorted(list(b)) for a, b in itertools.groupby(sorted(words, key=len), key=len)}
</code></pre>
<p>输出:</p>
<pre><code>{4: ['pear', 'plum'], 5: ['apple', 'peach'], 6: ['cherry', 'orange', 'quince']}
</code></pre>