已给我一个正整数列表,最大为10 ^ 6,给定列表中的项目总数最多为10 ** 4。我要按照以下说明的特定顺序存储这些值。
我要遍历列表,并希望将项目的索引值放在与该项目相对应的内部列表中。
提供列表:[3,0,1,1]
输出:[[1],[2,3],[],[0]]
#期望的输出
基本上输出列表应该包含索引,该索引的索引与给定列表中项目值相对应,索引应该包含索引值
我想出了这个解决方案。
sequence = [[]] * 4
given = [3,0,1,1]
index = 0
for num in given:
sequence[num].append(index)
index+=1
print(sequence)
但是我得到的输出是[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]
,无法弄清原因。
答案 0 :(得分:0)
这可以做到:
a = [3, 0, 1, 1]
[[j for j, k in enumerate(a) if k == i] for i, _ in enumerate(a)]
#[[1], [2, 3], [], [0]]