【发布时间】:2019-05-13 06:29:13
【问题描述】:
我有一个列表 [0,1,0] 并且想遍历它,并查看每个项目的邻居(邻居 = 2 个索引)并更新值(1 更改为 0,反之亦然),如果邻居具有相同的值。当迭代并到达列表中的最后一项时,我想从列表的第 0 个索引处重新开始。所以第一个索引中的项目的邻居实际上是上面示例中第 0 个索引中的项目,列表长度为 3。
我还希望能够确定我遍历列表的次数。
如果它的邻居(2 个索引之外)具有相同的值,我可以更新列表中某个项目的值,但是当我到达最后一个项目时,我遇到了索引超出范围错误的问题列表。为了解决这个问题,我尝试从列表中弹出最后一项并将其附加到开头,这样我就不会脱离数组的末尾,但是我没有得到预期的结果(见下面的结果),我我不确定为什么。
我也尝试过使用itertools 中的cycle,这非常适合迭代,但不适用于访问特定列表中的元素获取列表在某个索引处的值。
弹出和追加的结果如下:
[0, 1, 0]
[1, 0, 1]
[0, 1, 0]
[1, 0, 1]
[0, 1, 0]
[1, 0, 1]
我希望结果如下:
original list = [0,1,0]
after 1 time step | [1,1,0]
after 2 time steps | [1,0,0]
after 3 time steps | [1,0,1]
等等。
【问题讨论】:
-
您的列表会重复吗,@JohnWachter 的可重复模式是什么?
标签: python python-3.x