python - 查找列表中连续项目的索引
问题描述
我想列出如下列表:
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]
解决方案
尝试这个。
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]]
推荐阅读
- javascript - 无法在 JSX 中渲染对象。抛出错误对象作为 React 子对象无效(发现:[object Promise])
- python-3.x - 在 while 循环中尝试 & if 语句
- reactjs - 如何在 phantomjs 中创建反应应用程序
- python - 仅当包含特定值时才保留行
- xamarin.forms - Xamarin 热重载“本地设备”未显示
- github - Git - 从历史中删除提交但减少代码
- r - Rmarkdown 在一段之后停止生成
- c# - 使用 openhardwaremonitor 获取 GPU 利用率
- ios - Google Analytics(分析)测量 iOS 广告系列跟踪生成器
- json - 从嵌套结构中生成记录并转换为 CSV