如何按顺序标记列表列表?

时间:2013-01-07 14:40:26

标签: algorithm list sequence

假设我有一个序列和一个列表列表:

[“A”“B”“C”“D”“E”] [[:1:2] [:3:4:5]]

我想使用序列来标记列表列表中的每个元素:

[[“A”:1“B”:2] [“C”:3“D”:4“E”:5]]

我的算法应该是什么?


编辑:那么Stack Overflow可以给出的最佳答案是制作副本然后改变它,并且仅在数据是特定形状时才有效?

我接受了这个答案,因为它是正确的,也是唯一给出的答案,但我们肯定可以做得更好吗?

1 个答案:

答案 0 :(得分:1)

应该相当简单。在通过序列移动索引时迭代子列表元素。如果列表长于序列,则可以使用模数将移动索引设置为序列到达结尾时的开头。

int index = 0

for(sublist in list) {
    for(element in sublist) {
        element.label = sequence[index++]
        index = index modulo length_of(sequence)
    }
}

如果您的子列表也可以有子列表,那么您可能需要制作递归方法。