我有这个代码,当你传入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
答案 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