首页 > 解决方案 > 如何比较列表列表中 2 个子列表元素的索引

问题描述

我想将子列表(索引 [0])中的第一个元素与它之前的子列表中的相同元素进行比较。如果不相等,我想将一个新元素附加到子列表中,该元素将为 0。如果它们相等,我想附加两个第二个元素之和的结果(例如:12+12 = 24)

我不知道如何在我在循环中检查的数据之前引用子列表中的数据以实现比较,因为我只是附加了一些 0。我很确定这是我引用前一个索引的方式是错误的.

list = [['1046', '10'], ['1047','12'], ['1047','12']]

for sublists in list:

    if sublists[1] !=  sublists[1 - 1]:
        sublists.append(0)

    else:
        velocity = float(sublists[2]) + float(sublists[2 - 1])
        sublists.append(velocity)

结果列表是:

R_list = [['1046', '10', 0], ['1047', '12', 0], ['1047', '12', 0]]

虽然我想要:

R_list = [['1046', '10', 0], ['1047', '12', 0], ['1047', '12', 24]]

标签: pythonfor-loopcomparenested-lists

解决方案


您的索引通常不正确。尝试以下操作:

for i in range(1,len(R_list)):
    if R_list[i][0]!=R_list[i-1][0]:
        R_list[i].append(0)
    else:
        R_list[i].append(int(R_list[i][1])+int(R_list[i-1][1]))

为了

R_list = [['1046', '10', 0], ['1047', '12', 0], ['1047', '12', 0]]

以上给出:

[['1046', '10', 0], ['1047', '12', 0, 0], ['1047', '12', 0, 24]]

推荐阅读