我有一个包含超过一千个这样的子列表的嵌套列表
x=[[1,2,4,4,5],[1,2,5,4,5],[1,2,5,4,5],[1,2,4,4,5],[1,2,3,4,5]....]
我想迭代这个并检查所有子列表中的特定整数序列。如果三个连续子列表中第三个元素{x[2]}
的序列是4,5,5,那么我希望这些整数的值分别被9,10和11替换。在上面提供的示例中,我的新列表看起来像
x=[[1,2,9,4,5],[1,2,10,4,5],[1,2,11,4,5],[1,2,4,4,5],[1,2,3,4,5],....]
我正在使用python 2.7。任何投入将不胜感激。
答案 0 :(得分:2)
这是相对使用python中的enumerate
关键字。
特别是在您的情况下,因为似乎所有嵌套列表都处于同一级别,您可以遍历顶级列表:
for index, item in enumerate(x):
if (item[2], x[index+1][2], x[index+2][2]) == (4, 5, 5):
item[2] = 9
x[index+1][2] = 10
x[index+2][2] = 11
也就是说,这里有一些你想要处理的边缘案例,我不会用勺子给你答案。具体来说,当我们开始到达列表末尾时是否有任何问题?
此外,上面的代码并不是很好,你可以使它更加实用和通用。这只涵盖了基本情况。
这应该是概念的证明,但你应该确保你理解这一点,并且可以在尝试进一步之前添加它。