您好!根据您的需求,我将为您提供一个完善且全面的答案。
要计算一个经过排序的列表中每个数字出现的次数,您可以使用循环遍历列表的方式来实现,而不使用count()函数。下面是一个示例代码:
def count_occurrences(sorted_list):
result = {}
current_num = None
count = 0
for num in sorted_list:
if num == current_num:
count += 1
else:
if current_num is not None:
result[current_num] = count
current_num = num
count = 1
# 处理最后一个数字
if current_num is not None:
result[current_num] = count
return result
这段代码中,我们使用了一个字典 result
来保存每个数字出现的次数。我们还使用了两个变量 current_num
和 count
,分别用于记录当前数字和当前数字的出现次数。
在循环遍历列表时,我们首先检查当前数字是否与上一个数字相同。如果相同,则将计数器 count
加一;如果不同,则将上一个数字及其出现次数添加到字典 result
中,并更新 current_num
和 count
。
最后,我们还需要处理最后一个数字,因为循环结束后无法再触发“不同数字”的条件。因此,我们在循环结束后再次检查 current_num
是否为 None
,如果不为 None
,则将最后一个数字及其出现次数添加到字典 result
中。
这样,最终的结果将会是一个字典,其中键为列表中的数字,值为该数字在列表中出现的次数。
这种方法的时间复杂度为 O(n),其中 n 是列表的长度。相比使用count()函数,这种方法更高效。
希望这个答案能够满足您的需求!如果您还有其他问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云