首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从Python的内循环中影响外部循环变量?

如何从Python的内循环中影响外部循环变量?
EN

Stack Overflow用户
提问于 2016-08-08 10:41:35
回答 5查看 2K关注 0票数 0

这是用Java编写的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for(int i=0; i<10; i++){
    while(i%3!=0)
        i++;
    System.out.print(i + " ");
}

这将产生以下结果:

0 3 6 9

我正试图在Python 3中实现类似的代码块。

在外部循环中,我不能使用范围,因为它会导致我在某个地方看到的整个列表的迭代。所以,我试着在下面,但它失败了危险,运行无限。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
i=1
while i<=10:
    while i%3 is not 0:
        i+=1
    print('run')

我可以通过删除内部while并将代码更改为i+=3来达到目标。但是我想要做的计划有重要的条件,所以它必须在那里。必须有两个循环,在内环条件匹配的基础上,增加迭代变量,所以当我中断并处理某个程序输出时,父循环应该从我在内循环中停止的地方开始迭代,上面的只是一个我能想到的分享问题的例子。我需要关于如何复制Python中的Java代码所描述的更改的建议。

更新:这里是我正在尝试的程序:https://softwareengineering.stackexchange.com/questions/327908/finding-total-number-of-subarrays-from-given-array-of-numbers-with-equal-max-and

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-08-08 10:46:35

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
i = 0
while i < 10:
    while i % 3 is not 0:
        i += 1
    print(str(i) + " ")
    i += 1
票数 2
EN

Stack Overflow用户

发布于 2016-08-08 10:49:27

在您的示例中不需要使用两个循环。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while i<=10:
  if i%3 == 0:
    print(i+ " ")
  i++

您的代码无限地运行,因为当i等于3时,您从不增加它。

票数 3
EN

Stack Overflow用户

发布于 2016-08-08 10:57:55

另一种选择是只使用列表理解:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print(' '.join([i for i in range(10) if i % 3 == 0])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38836312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文