我有一个列表[0,1,0],希望遍历它,并查看每个项的邻居(邻居=2个索引之外),如果邻居有相同的值,则更新值(1变为0,反之亦然)。当遍历并到达列表中的最后一项时,我想从列表的第0个索引处重新开始。因此,第一个索引中的项的邻居实际上是上例中第0个索引中的项,其列表长度为3。你知道吗
我还希望能够确定遍历列表的次数。你知道吗
如果列表中某个项的邻居(两个索引之外)具有相同的值,我可以更新该项的值,但是当我到达列表中的最后一个项时,我遇到了索引超出范围错误的问题。为了解决这个问题,我尝试从列表中弹出最后一项并将其附加到开头,这样我就不会从数组的末尾掉下来,但是我没有得到预期的结果(请参见下面的结果),我不确定为什么。你知道吗
我还尝试过使用cycle
from itertools
,这对于遍历非常有用,但对于访问特定列表中的元素却没有好处,因为它可以在某个索引处获取列表的值。你知道吗
弹出和追加的结果如下:
[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]
等等。你知道吗
对于您的特定任务,我会保持初始列表的顺序不变,并检查索引:
然而,为了使列表循环,我宁愿将第一个索引附加到最后一个索引:
您也可以通过弹出和追加来获得相同的结果,但您必须在每个步骤中根据原始列表对索引进行排序:
输出:
您的问题不清楚,但我从您的问题中解释的是,您可能希望以循环方式遍历列表并更新其值。 试试这个
相关问题 更多 >
编程相关推荐