首页 > 解决方案 > 查找列表中连续项目的索引

问题描述

我想列出如下列表:

x = [1,2,2,3,4,6,6]

并返回一个包含重复值索引的二维列表:

[ [1,2], [5,6]]

我尝试了以下方法:

new_list = []
i = 0
while i < len(x)-1:
    if x[i] == x[i+1]:
        new_list.append([x[i],x[i+1]]
    i += 1

x 不一定是排序的,但至少有一系列重复值。例如 x 也可以是:

x = [1,4,2,3,3,3,7,0]

标签: pythonpython-3.xlistindexingwhile-loop

解决方案


尝试这个。

def repeating_values( initital_list):
    cache = {}
    result = []
    for i, element in enumerate(initital_list):
        if element in cache:
            result.append([cache[initital_list[i]], i])
        else:
            cache[element] = i

    return result 

供您输入


x = [1,2,2,3,4,6,6]

print(repeating_values(x))

结果

[[1, 2], [5, 6]]

推荐阅读