首页 > 解决方案 > 检查索引的内容是否等于下一个索引的内容

问题描述

array = [1, 1, 1, 1, 1, 1, 2]
new_array = [x for x in array if array[array.index(x)] != array[array.index(x) + 1]]
print(new_array)

嗨,我正在尝试编写一个程序来检查索引的内容(例如:list [0])是否等于下一个索引,如果不附加不同的数字,我尝试使用我学到的新技能是列表理解,我不太明白为什么它不工作它应该如何工作

为了更清楚地说明我的意思是,如果给我一个所有数字都相同的数组,除了一个数字在这种情况下是两个我想将它附加到一个列表中我还添加了一张图片以使其更加清晰

在此处输入图像描述

标签: pythonlist

解决方案


IndexError: list index out of range表示您正在传递列表中不存在的索引。并且在这部分中引发了该错误:

array[array.index(x) + 1]

当 x 是最后一个元素时,会引发错误。因为最后一个元素之后没有索引。在您的情况下,使用列表理解不是最佳选择,您应该更喜欢 for 循环。


推荐阅读