【发布时间】:2019-11-07 15:34:49
【问题描述】:
我得到了一个最大为 10^6 的正整数列表,并且给定列表中的项目总数最多为 10** 4。我想按如下所述的特定顺序存储这些值。
我想遍历列表,想把item的索引值放到该item对应的inner list中。
示例
给定列表:[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]] 并且无法弄清楚原因。
【问题讨论】:
-
sequence = [[]] * 4将创建 4 个相同的列表,因此更改一个将更改其他列表。尝试将其更改为sequence = [[] for _ in range(4)] -
@ChrisDoyle 知道了,我尝试调试了好几个小时。
-
@LeoE 确实如此。谢谢
标签: python list multidimensional-array