迭代并操作python中的嵌套列表

时间:2015-01-28 19:17:47

标签: python algorithm replace nested-lists

我有一个包含超过一千个这样的子列表的嵌套列表

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。任何投入将不胜感激。

1 个答案:

答案 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

也就是说,这里有一些你想要处理的边缘案例,我不会用勺子给你答案。具体来说,当我们开始到达列表末尾时是否有任何问题?

此外,上面的代码并不是很好,你可以使它更加实用和通用。这只涵盖了基本情况。

这应该是概念的证明,但你应该确保你理解这一点,并且可以在尝试进一步之前添加它。