问题需求:从第1个数开始,往后数5个,当第6个数大于10时,继续往后数5个,否则找到下一个大于10的数,开始往后数五个。
案例:a=[12,11,10,9,8,11,10,9,8,7,6,12,11,10,13,14,15]
需求输出:count=[0,5,11]
16不在结果里面吗?为啥我的结果还包含了16...代码如下:供参考,输出为:[0, 5, 11, 16]
a=[12,11,10,9,8,11,10,9,8,7,6,12,11,10,13,14,15]
res = [0]
j = 5
while j < len(a):
if a[j] > 10:
res.append(j)
j = j + 5
else:
j = j + 1
print(res)
可以使用一个 while 循环,对列表进行遍历,并使用一个变量 index 来记录当前处理的位置。当列表中第 index+5 个元素大于 10 时,将 index 加上 5;否则,找到下一个大于 10 的元素的位置,并将 index 设为该位置。如果没有找到下一个大于 10 的元素,则退出循环。
代码实现如下:
a = [12, 11, 10, 9, 8, 11, 10, 9, 8, 7, 6, 12, 11, 10, 13, 14, 15]
count = [0]
index = 0
while index < len(a):
if index + 5 < len(a) and a[index + 5] > 10:
index += 5
else:
found = False
for i in range(index + 1, len(a)):
if a[i] > 10:
index = i
found = True
break
if not found:
break
count.append(index)
print(count)
输出为 [0, 5, 11],与需求相符。
望采纳。
a=[12,11,10,9,8,11,10,9,8,7,6,12,11,10,13,14,15]
i=0
b=[]
while i<len(a):
while a[i]<=10 and i<len(a):
i+=1
b.append(i)
i+=5
print(b)