擅长:python、mysql、java
<p>不知道为什么<code>itertools</code>答案被删除,但我自己正在写一个:</p>
<pre><code>from itertools import groupby
def make_index(data, key = lambda x: x[0]):
return {key: list(gr) for key, gr in
groupby(sorted(data, key=key), key=key)}
In [3]: make_index(["Andy","Alice","Bob","Beth","Charlie"])
Out[3]: {'A': ['Andy', 'Alice'], 'B': ['Bob', 'Beth'], 'C': ['Charlie']}
In [4]: make_index(["Andy","Alice","Bob","Beth","Charlie"], key=lambda x: len(x))
Out[4]: {3: ['Bob'], 4: ['Andy', 'Beth'], 5: ['Alice'], 7: ['Charlie']}
</code></pre>