Python 检查索引的内容是否等于下一个索引的内容

Python 检查索引的内容是否等于下一个索引的内容,python,list,Python,List,您好,我正在尝试编写一个程序,检查索引的内容(例如:列表[0])是否等于下一个索引,如果不添加不同的数字,我尝试使用我学到的一项新技能,即列表理解,但我不太明白为什么它不起作用它应该如何工作 为了让它更清楚,我的意思是,如果给我一个数组,除了一个数字(在本例中是两个)之外,所有数字都相同,我想把它附加到一个列表中,我还添加了一张图片,让它更清楚 索引器错误:列表索引超出范围表示您正在传递列表中不存在的索引。这一部分提出了这一错误: array = [1, 1, 1, 1, 1, 1, 2] ne

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

为了让它更清楚,我的意思是,如果给我一个数组,除了一个数字(在本例中是两个)之外,所有数字都相同,我想把它附加到一个列表中,我还添加了一张图片,让它更清楚


索引器错误:列表索引超出范围
表示您正在传递列表中不存在的索引。这一部分提出了这一错误:

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)

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

索引器:列表索引超出范围
表示您正在传递列表中不存在的索引。这一部分提出了这一错误:

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)
当x是最后一个元素时,将引发错误。因为在最后一个元素之后没有索引。在您的情况下,使用列表理解并不是最佳选择,您应该更喜欢for循环。

它可能会帮助您:

array[array.index(x) + 1]
它可能会帮助您:

array[array.index(x) + 1]

你可以用这个简单的一行

list = [1, 1, 2, 3, 4, 4]
for i, j in enumerate(list[:-1]):
    if j  == list[i+1]: 
       #dosomething
注意:我正在使用
min()
从集合中获取元素

输出:

print(a[0] if a.count(a[0]) == 1 else min(set(a).difference(a[:1])))

你可以用这个简单的一行

list = [1, 1, 2, 3, 4, 4]
for i, j in enumerate(list[:-1]):
    if j  == list[i+1]: 
       #dosomething
注意:我正在使用
min()
从集合中获取元素

输出:

print(a[0] if a.count(a[0]) == 1 else min(set(a).difference(a[:1])))

预期输出和您提到的问题完全不同请编辑您的帖子并添加错误消息列表理解不是解决问题的最佳选择预期输出和您提到的问题完全不同请编辑您的帖子并添加错误消息列表理解不是解决问题的最佳选择我知道我只是想使用列表理解,因为我几天前才学会了如何做,所以我想练习,谢谢你的建议。凯,我明白你的意思了。更喜欢使用列表理解,当结果不依赖于某一特定点的其他元素时,其他时候使用列表理解是可以的。我知道我只是想使用列表理解,因为我几天前才学会了如何使用列表理解,所以想练习,谢谢你的建议。凯,我明白你的意思了。当结果不依赖于某一特定点的其他元素时,更喜欢使用列表理解,其他时候,使用列表理解是可以的,它确实起作用,但我是一个绝对的初学者,所以需要一些时间才能理解,但感谢您提供的解决方案在我对您的代码进行了更多的检查并完全理解了它的工作原理之后,这是一个非常聪明的解决方案,你是一个天才,但我是一个绝对的初学者,所以需要一点时间来理解,但感谢你的解决方案在我对你的代码进行了更多的审查并完全理解了它的工作原理后,这是一个非常聪明的解决方案,你是一个天才