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

时间:2019-11-07 15:34:49

标签: python list multidimensional-array

已给我一个正整数列表,最大为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]],无法弄清原因。

1 个答案:

答案 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]]