5-6统计工龄

给定公司 n 名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。

输入格式:

输入首先给出正整数 n(≤105),即员工总人数;随后给出 n 个整数,即每个员工的工龄,范围在 0, 50

输出格式:

按工龄的递增顺序输出每个工龄的员工个数,格式为:"工龄:人数"。每项占一行。如果人数为 0 则不输出该项。

这是一开始的错误答案:

python 复制代码
n=int(input())
m=list(map(int,input().split()))
m.sort()
for i in m:
    total=0
    if i==i:
        total+=1
        m1=set(m)
print(f'{m1}:{total}')

输出是{0, 2, 5, 7, 10}:1。

主要问题

  1. total 放在循环内,每次都被重置为 0 → 最后 total 只等于 1

  2. if i == i 永远成立,没意义

  3. m1 = set(m) 每次循环都重复计算,浪费

  4. 最后输出时,total 是最后一次循环的值(1),不是总次数

  5. 输出格式是 {集合}:{1},不是想要的统计结果

所以重新运用字典进行:

python 复制代码
n=int(input())
m=list(map(int,input().split()))
m.sort()
total={}
for i in m:
    if i in total:
        total[i]+=1
    else:
        total[i]=1
for r,j in total.items():
    print(f'{r}:{j}')

items()字典(dict) 的方法,作用是返回字典中所有的键-值对 ,每个键值对是一个元组 (键, 值)

字典是动态的,循环每执行一次,就往里加一个键(如果新数)或更新值(如果重复)。

  • 如果遇到新数,就新建键值对

  • 如果遇到重复,就更新值

total.items() 每次返回一个元组,比如 (1, 1),然后:

  • 元组的第一个元素(键)赋给变量 r

  • 元组的第二个元素(值)赋给变量 j

相关推荐
用户83562907805114 小时前
Python 实现 PDF 文件加密与解密方法
后端·python
用户83562907805114 小时前
使用 Python 冻结与拆分 Excel 窗格教程
后端·python
vibecoding日记15 小时前
双非如何快速入职字节等大厂大模型?真实案例分析:推理优化和投机解码
算法·求职·大模型工程师
yszaygr213818 小时前
Verilog参数化游程编码RLE模块
算法
望易18 小时前
刚设计的大模型架构-双域耦合认知框架
算法·架构
复杂网络1 天前
多个 Claude Code 与多个 Codex 协同工作:设计与实现方案
算法
你好潘先生1 天前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
Agent_大师1 天前
WebSocket 行情重连成功,K线缺口不会自动消失
python
荣码1 天前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python