根据索引和值创建列表列表

已给我一个正整数列表,最大为10 ^ 6,给定列表中的项目总数最多为10 ** 4。我要按照以下说明的特定顺序存储这些值。

我要遍历列表,并希望将项目的索引值放在与该项目相对应的内部列表中。

示例

提供列表:[3,1,1]

输出:[[1],[2,3],[],[0]]#期望的输出

基本上输出列表应该包含索引,该索引的索引与给定列表中项目值相对应,索引应该包含索引值

我想出了这个解决方案。

sequence = [[]] * 4
given = [3,1]
index = 0
for num in given:
    sequence[num].append(index)
    index+=1
print(sequence)

但是我得到的输出是[[0,2,[0,3]],无法弄清原因。

webkate4747 回答:根据索引和值创建列表列表

这可以做到:

a = [3,1,1]
[[j for j,k in enumerate(a) if k == i] for i,_ in enumerate(a)]
#[[1],[2,3],[],[0]]
本文链接:https://www.f2er.com/3143555.html

大家都在问