gpt4 book ai didi

Python - 如何使用几次相同的下一次迭代?

转载 作者:行者123 更新时间:2023-11-28 21:41:48 25 4
gpt4 key购买 nike

我想搜索一个列表:

[0, 0, 1, 0, 1, 1, 1, 0, 1, 1] 

并替换/编辑与上一项和下一项不同的项目。对于 xxample:我想删除/编辑上面列表中索引 2 处的 1

看看我下面的代码,请继续阅读我的代码下面的核心问题:

!更新:结果应该是:[0, 0, 0, 0, 1, 1, 1, 1, 1, 1]

x = [0, 0, 1, 0, 1, 1, 1, 0, 1, 1]
print(x)
hiter = iter(x)
next(hiter)
prev = None

for i in x:
try:
print('prev %s - CURRENT %s - next %s' % (prev, i, next(hiter)))
prev = i

#if i != prev and i != next(hiter):
# x[i] = prev

except StopIteration:
break

print(x)

我们知道上一项、下一项和当前项。

但每次我使用:

if i != prev and i != next(hiter)...

next(hiter) 破坏了顺序。换句话说,如果我在循环中使用 next(hiter) 超过 1 次,Python 会将下一项读取为 double,因为我使用了 next(hiter) 两次在一个循环中。

我也尝试过声明单独的变量,如 y = next(hiter) - 但它仍然没有用(显然不会用,但我还是很想检查它 xD)。

我没有任何线索,此外,hiter.__next__()next(hiter) 的作用相同。

最佳答案

你自己把事情搞得太复杂了。相反,只需在循环中多次读取 x 即可:

for idx in range(1, len(x)-1): # Consider using enumerate, it's a great idea
curr = x[idx]
prev = x[idx - 1]
nxt = x[idx + 1]
if (curr != prev) and (curr != nxt):
print('prev %s - CURRENT %s - next %s' % (prev, curr, nxt))

关于Python - 如何使用几次相同的下一次迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44393247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com