【发布时间】:2020-09-27 11:18:23
【问题描述】:
我正在尝试检查某个值连续重复了多少次,但我遇到了一个问题,即我的代码没有检查就留下最后一个数字。
Ai = input()
arr = [int(x) for x in Ai.split()]
c = 0
frozen_num = arr[0]
for i in range(0,len(arr)):
print(arr)
if frozen_num == arr[0]:
arr.remove(arr[0])
c+=1
else:
frozen_num = arr[0]
print(c)
假设我输入:1 1 1 1 5 5 我的代码将给出输出 5 而不是 6
我希望你明白我在说什么。我对 python 很陌生,而且这段代码还没有完成,后面的数字将被附加,所以我得到输出:[4, 2] 因为“1”重复 4 次,“5”重复 2 次。
已编辑 - 我不小心写了 6 和 7,而不是 5 和 6。
【问题讨论】:
-
为什么应该是7?我上次检查时 4 + 2 是 6
-
range()不包括最后一个元素。range(3) → 0, 1, 2 -
你能解释一下为什么
1 1 1 1 5 5的输出应该是 7 吗?有四个 1 和两个 5。 -
另外,
range循环完全没有做任何事情,您每次都在比较frozen_num(即arr[0]和arr[0]。你不应该使用arr[i]吗? -
@KlausD。范围循环用于索引,而不是元素值。此外,
range中的i无论如何都没有被使用