gpt4 book ai didi

python - 执行此操作的最有效的 pythonic 方法是什么 :

转载 作者:行者123 更新时间:2023-11-28 20:51:31 24 4
gpt4 key购买 nike

我有一个大小为 N 的列表 L,其中列表的每个元素都在 0K-1.
我想创建一个二维列表 SK 行,这样 rth 行包含所有这些索引 i,这样 L[i] == r

例如,如果 L[0, 0, 1, 3, 0, 3]
那么新列表 S[[0, 1, 4], [2], [], [3, 5]]

解决方案当然应该是 O(N),它也应该尽可能高效(阅读:列表上没有无用的追加操作)

最佳答案

>>> L = [0, 0, 1, 3, 0, 3]
>>> import collections
>>> d = collections.defaultdict(list)
>>> for index, item in enumerate(L):
... d[item].append(index)
...
>>> d
defaultdict(<type 'list'>, {0: [0, 1, 4], 1: [2], 3: [3, 5]})
>>> [d[i] for i in xrange(1 + max(d))]
[[0, 1, 4], [2], [], [3, 5]]

关于python - 执行此操作的最有效的 pythonic 方法是什么 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9529018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com