python - 检查索引的内容是否等于下一个索引的内容
问题描述
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])是否等于下一个索引,如果不附加不同的数字,我尝试使用我学到的新技能是列表理解,我不太明白为什么它不工作它应该如何工作
为了更清楚地说明我的意思是,如果给我一个所有数字都相同的数组,除了一个数字在这种情况下是两个我想将它附加到一个列表中我还添加了一张图片以使其更加清晰
解决方案
IndexError: list index out of range
表示您正在传递列表中不存在的索引。并且在这部分中引发了该错误:
array[array.index(x) + 1]
当 x 是最后一个元素时,会引发错误。因为最后一个元素之后没有索引。在您的情况下,使用列表理解不是最佳选择,您应该更喜欢 for 循环。
推荐阅读
- django - 如何从我的数据库中实现 django 中的复选框
- laravel - Laravel 队列运行大型作业
- javascript - 如何在Javascript中将字符串变量放在一起?它只是说“对象未定义”
- python - pytorch lstm weight是什么意思?
- android - 输入事件键仅在 android studio 中第二次响应
- docker - GUI 程序 (gitkraken) 不会在 fedora docker 中启动
- numpy - Numpy 中数组的形状 - 使用方括号
- windows-10 - 访问被拒绝问题窗口(这不再是位置)
- android - 应用重新安装后,Android 11 无法检索使用 MediaStore 创建的文件
- vue.js - 如何使用 vue-test-utils 测试 BPopover 中的内容?