def run_counter():
#list1 = generate_integer_list(num_int, low_range, high_range)
list1 = [6, 12, 9, 10, 1, 2, 3, 4]
run = 0
for i in range(len(list1) - 2):
while i < len(list1) - 1 and list1[i] == list1[i+1] - 1:
run = i + 1
i += 1
return run, i - run+1
跑步是连续的数字顺序:1,2,3,4,10,11,12等。对于那些不知道的人。
我正在尝试创建一个函数,该函数返回它在列表中遇到的第一次运行的长度,以及运行开始的索引。
我上面的代码并没有真正完成这项工作。它应该返回,长度为2,从2开始,但返回长度为7并从1开始。有什么想法吗?
答案 0 :(得分:0)
>>> def runCounter(L):
... answer = []
... start = 0
... end = 1
... while end < len(L):
... if L[end] < L[end-1]:
... answer.append(end-start)
... start, end = end, end+1
... end += 1
... answer.append(end-start)
... return answer
...
>>> L = [6, 12, 9, 10, 1, 2, 3, 4]
>>> runCounter(L)
[2, 2, 4]