鱼C论坛

 找回密码
 立即注册
查看: 1272|回复: 5

[已解决]求救!关于迭代套迭代的一个问题

[复制链接]
发表于 2019-10-8 19:12:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
for i in range(10):
        for j in range(6):
                if j % 2 == 1:
                        break
                else:
                        print(i,j)
               
        for k in range(8):
                if k %3 == 0:
                        print(k)


比如说上面这一段代码,我想要的结果是如果我 j = 1 的时候,该退出这个迭代,但是我想要从最开始那个i开始,而不运行下面的那些代码该怎么办?
上面那个break只是退出第二个for,但是我希望的是只要第二个for里面有个满足我break条件的我就退出这个循环,让i进一位,不运行下面的。
最佳答案
2019-10-8 20:10:08
641143382 发表于 2019-10-8 20:04
我刚想了一个办法,加一个判断的变量,但是感觉会很难受,因为我的代码里面有很多个像这样的for的判断, ...
  1. for i in range(10):
  2.         for j in range(6):
  3.                 if not j % 2 == 1:
  4.                         print(i,j)
  5.                         continue
  6.                 else:
  7.                         break
  8.                 break
  9.                
  10.         for k in range(8):
  11.                 if k %3 == 0:
  12.                         print(k)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-8 19:16:34 | 显示全部楼层
  1. for i in range(10):
  2.         for j in range(6):
  3.                 if j % 2 == 1:
  4.                         break
  5.                 else:
  6.                         print(i,j)
  7.         continue
  8.                
  9.         for k in range(8):
  10.                 if k %3 == 0:
  11.                         print(k)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-10-8 19:55:08 | 显示全部楼层

这个例子我没举好。。
我的意思是我的第一个for只是个判断条件的,如果全部都满足的话,我就进入下一个for,但是一旦有一个不满足,导致了break条件,我就从最开始的for里面的进位。
例如下:
for i in some_list:
    for j in first_list:
        if j 不满足某些条件:
            break
    for k in second_list:
        if k 不满足某些条件:
            break

我希望的是如果j不满足某些条件后,我直接进入下一个i的迭代,不用进行下一个for里面k的运算,但是如果所有的j都满足条件,没有导致break,我希望进入下一个for里面k的迭代运算,该怎么办呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-8 20:04:11 | 显示全部楼层

我刚想了一个办法,加一个判断的变量,但是感觉会很难受,因为我的代码里面有很多个像这样的for的判断,不知道有没有更简易的方法。
judge_one = False
judge_two = False
...


for i in some_list:
    for j in first_list:
        if j 不满足某些条件:
            judge_one = True
            break
    if judge_one:
        continue

    for k in second_list:
        if k 不满足某些条件:
            judge_two = True
            break
    if judge_two:
       continue


    for n in third_list:
       ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-8 20:10:08 | 显示全部楼层    本楼为最佳答案   
641143382 发表于 2019-10-8 20:04
我刚想了一个办法,加一个判断的变量,但是感觉会很难受,因为我的代码里面有很多个像这样的for的判断, ...
  1. for i in range(10):
  2.         for j in range(6):
  3.                 if not j % 2 == 1:
  4.                         print(i,j)
  5.                         continue
  6.                 else:
  7.                         break
  8.                 break
  9.                
  10.         for k in range(8):
  11.                 if k %3 == 0:
  12.                         print(k)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-10-8 20:19:45 | 显示全部楼层
理解起来的意思不就是把第三个for写到和else执行的语句里不就行了吗?(也就是和print(i,j)同缩进)里面的if k not_condition:也是可以在break后进入下个i的迭代。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 11:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表