python if循环不终止_if语句为true时如何停止迭代?

我在停止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-行,y-列):for i in range(1,w.x-1):

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

(打印仅用于控制)

对于数组中的每个单元格,我要检查其值。我在data.c列表中有所有可能的值(比如说value=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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值