首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用计数器将Python for循环转换为while循环

使用计数器将Python for循环转换为while循环
EN

Stack Overflow用户
提问于 2018-07-27 06:32:00
回答 3查看 119关注 0票数 1

我有一个python类的赋值,它要求将一个for循环转换为一个包含计数器的while循环,这样当列表达到一定长度时,它就会被截断。不幸的是,作业和之前的课程并没有明确说明如何做到这一点(而且我知道在python中并不需要做很多事情,因为这类程序通常更适合for循环)。

以下是原始代码:

a = [7,12,9,14,15,18,12]
b = [9,14,8,3,15,17,15]
big = [ ]
for i in range ( len (a)):
        big.append ( max (a [i], b [i] ))

我也不是很确定这个for循环一开始是做什么的。似乎给出的输出是来自每个原始列表的一系列交替的数字对。

它给出的输出(当被要求打印‘big’时)是:

[9, 14, 9, 14, 15, 18, 15]

我最接近于解决这个问题并将其转换为while循环是这样的:

a = [7,12,9,14,15,18,12]
b = [9,14,8,3,15,17,15]
big = [ ]

i = 0

while i <= 8:
    i += 1
    big.append ( max (a [i], b [i] ))
    print(big)

然而,它的最终输出实际上是:

[14, 9, 14, 15, 18, 15]

由于某种原因,它只有6个数字,而它应该是7,而且也不是完全相同的数字序列。这个作业的说明写得不好,我对此很困惑,任何帮助都是非常感谢的!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-27 06:36:54

您将在while循环开始时递增i的值。在末尾递增它。您正在跳过第一个。此外,您还需要检查您的循环保护。列表中只有7个元素。我会将其更改为i < len(a)。像这样的东西

while i < len(a):
    big.append ( max (a [i], b [i] ))
    i += 1
print(big)
[9, 14, 9, 14, 15, 18, 15]

这取决于a和b的长度相等的消耗。

票数 2
EN

Stack Overflow用户

发布于 2018-07-27 06:38:56

在循环中使用当前值的语句完成后,您需要递增i

另外,我将继续在while语句中使用len(),如下所示:

a = [7,12,9,14,15,18,12]
b = [9,14,8,3,15,17,15]
big = [ ]

i = 0

while i < len(a):
    big.append ( max (a [i], b [i] ))
    i += 1

print(big)
票数 0
EN

Stack Overflow用户

发布于 2018-07-27 06:39:08

使用手动计数器

a = [7,12,9,14,15,18,12]
b = [9,14,8,3,15,17,15]
big = [ ]

i = 0
while i < len(a):
        big.append ( max (a [i], b [i] ))
        i+=1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51548364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档