gpt4 book ai didi

python - 当if语句为真时如何停止迭代?

转载 作者:行者123 更新时间:2023-11-28 17:53:26 24 4
gpt4 key购买 nike

我在 Python 中停止迭代时遇到了一些麻烦。这个问题出现在函数中:

for z in range(w.steps):
for i in range(1,w.x-1):
for j in range(1,w.y-1):
print (i, j)
for r in data.c:
if w.world[i][j] in r:
print r
ind = data.c.index(r)
print ind
if w.world[i-1][j] in data.n[ind]:
if w.world[i][j+1] in data.e[ind]:
if w.world[i+1][j] in data.s[ind]:
if w.world[i][j-1] in data.w[ind]:
w.world[i][j] = data.cc[ind]

步骤数(第一个 for 循环)由用户提供。接下来的两个 for 循环用于遍历二维数组(x-rows,y-cols):

for i in range(1,w.x-1):
for j in range(1,w.y-1):

(打印仅供对照)对于数组中的每个单元格,我想检查它的值。我在 data.c 列表中有所有可能的值(假设值=14),看起来像那个:

li = [[2],[14,23],[4]]

所以指令:

for r in data.c:
if w.world[i][j] in r:

我想在第一个 true 出现时停止迭代。如果函数将达到第一个相等的值,我想分配包含它的列表的索引,并执行其他语句:

ind = data.c.index(r)
if w.world[i-1][j] in data.n[ind]:
if w.world[i][j+1] in data.e[ind]:
if w.world[i+1][j] in data.s[ind]:
if w.world[i][j-1] in data.w[ind]:
w.world[i][j] = data.cc[ind]

如果它们都是true,我想执行最后一条指令(赋值),然后转到数组的下一个单元格。但是,如果其中至少有一个是 false,我想返回并在 data.c 列表中寻找下一个命中(可能不止一个)。列表中肯定有所有可能性的值。重点是先使用匹配的。

我为 1 个单元格尝试了这个函数,我得到的索引比预期的多得多,我不知道为什么。数组中一个单元格的输出以及我的评论是什么:

(1, 1)     # print(i,j)
[0] # print r
3 # print data.c.index(r)
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3
[0]
3

我将非常感谢任何帮助,因为我已经处理这个算法很长时间了(我是编程的初学者)。

最佳答案

如果我没理解错的话,你需要放置一个break语句。

for z in range(w.steps):
for i in range(1,w.x-1):
for j in range(1,w.y-1):
print (i, j)
for r in data.c:
if w.world[i][j] in r:
print r
ind = data.c.index(r)
print ind
if w.world[i-1][j] in data.n[ind]:
if w.world[i][j+1] in data.e[ind]:
if w.world[i+1][j] in data.s[ind]:
if w.world[i][j-1] in data.w[ind]:
w.world[i][j] = data.cc[ind]
break # <-- break "for r" and continue with "for j"

关于python - 当if语句为真时如何停止迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5520145/

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