如何将此循环更改为while循环?

时间:2018-03-18 13:34:49

标签: python loops if-statement while-loop

我有这个代码,当你传入aList = [5,8,2,13,1,8,3,1,8] 它打印countList = [0,2,1,1,0,1,0,0,3,0,0,0,0,0,0,0,0,0,0]。基本上,假设countList中的索引1为2,因为aList中有两个数字1。

这是for循环中的代码:

countList = 20*[0]

aList = [5,8,2,13,1,8,3,1,8]
for num in aList:
    countList[num] += 1

我尝试将其更改为while循环但打印countList = [0,2,2,3,0,5,0,0,24,0,0,0,0,13,0,0,0 ,0,0,0]而不是。

这就是我的尝试:

countList = 20*[0]

aList = [5,8,2,13,1,8,3,1,8]
index=0#initialize index

while index<len(aList):
    number=aList[index]
    count=0
    while count<number:
        countList[number] += 1
        count+=1
    index+=1

1 个答案:

答案 0 :(得分:0)

你有太多的时间。一个for循环可以用一个while循环替换。

不需要内在的时间。将其替换为列表中计数器的增量。 您只需跟踪成功循环的3个内容,遍历元素的索引,初始化和结束条件。 它们在不同的循环命令中处于不同的位置,但它们在逻辑上是相同的。

countList = 20*[0]

aList = [5,8,2,13,1,8,3,1,8]
index=0#initialize index

while index<len(aList):
    countList[aList[index]] += 1
    index+=1