Python:统计数字

目录

题目描述

输入描述

输出描述

输入输出样例

 参考代码:

sort ()与 sorted() 区别:


题目描述

某次科研调查时得到了 n 个自然数,每个数均不超过 1.5≤10^9。已知不相同的数不超过 10^4个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果

输入描述

第 1 行是整数 n,表示自然数的个数。

第 2 ~ n+1行每行一个自然数。

其中,每个数均不超过 1≤n≤2×10^5,每个数均不超过1.5≤109。

输出描述

输出 m 行( m 为 n 个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

输入输出样例

示例 1

输入

8
2
4
2
4
5
100
2
100

输出

2 3
4 2
5 1
100 2

 参考代码:

方法1:

n = int(input())
d = {}
for i in range(n):          
    p = int(input())           #每循环一次输入一次
    d[p] = d.get(p, 0) + 1     # get()获取字典中的元素,若键p的值为空,则返回0+1
for x, y in sorted(d.items()): # items()获取字典中的键值对
    print(f'{x} {y}')   #加f表示格式化字符串,加f后可以在字符串里面使用用花括号括起来的变量和表达式
  

'''
d.get(p, 0) + 1
d.get()有两个参数时,理解为当p对应键值不存在时返回第二个参数作为键值,
在本例中代表当p键值不存在时,返回0为p的键值,加1代表每次遍历到p键值加一,
第二次遍历到p时,d.get(p,0)返回1,以此类推。
第三次遍历到p时,d.get(p,0)返回2,对应字典中p的键值
'''

方法2:

n=int(input())
a={}     #定义字典
for i in range(n):   #读入 n 行数据
  x=int(input()) 
  if x in a.keys():  #keys()字典的键
    a[x]+=1  
  else: 
    a[x]=1
b=list(a.keys())      #转化为列表
b.sort()
for i in b:
  print(i,a[i])       #i为键,a[i]为值

 

sort ()与 sorted() 区别:

  1. sort 是应用在 list 上的方法,属于列表的成员方法,sorted 可以对所有可迭代的对象进行排序操作。
  2. list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
  3. sort使用方法为ls.sort(),而sorted使用方法为sorted(ls)

你可能感兴趣的:(每日一题,蓝桥杯,蓝桥杯,python)