题目
法一:
n = int(input())
num = list(map(int, input().split()))
for i in range(len(num)):
print(num[:i+1].count(num[i]), end=' ')
通过遍历同时切片来实时查看是数字第几次出现
法二:
n = int(input())
num = list(map(int, input().split()))
count_dict = {}
for i in num:
if i in count_dict:
count_dict[i] += 1
else:
count_dict[i] = 1
for i in num:
print(count_dict[i], end=' ')
法二使用了一个字典来记录列表中每个数字的出现次数,它只需要遍历列表一次就可以完成字典的构建。然后再遍历一次列表,通过字典快速查找每个数字的出现次数,而不需要法一对列表进行切片操作,这在处理大型列表时可以提高代码的效率。