回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在寻找一个Python魔术方法来打包这类索引的列表</p>
<pre><code>[0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 4]
</code></pre>
<p>将每个索引分组到特定列表中:</p>
<pre><code>[[0, 1, 2, 3, 4], [5, 6, 7], [8, 9], [10], [11, 12, 13]]
</code></pre>
<p>我已经用一个列表理解加上一个如下所示的附加循环完成了,但是我觉得有一个Python一行程序可以做到这一点。我正在处理的列表有时会超过10000个条目,所以性能很重要。你知道吗</p>
<pre><code>li = [0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 4]
result = [[] for _ in xrange(max(li)+1)]
for i in xrange(len(li)):
result[li[i]].append(i)
</code></pre>