华为机考入门python3--(8)牛客8-合并表记录

分类:字典排序

知识点:

  1. 将输入转成int的列表 my_list = list(map(int, input().strip().split(' ')))

  2. 将列表转为元组 tuple(my_list)

  3. 访问元素为元组的列表 for first, second, third in my_list:

  4. 对字典进行排序 sorted(my_dict.items())

题目来自【牛客】

复制代码
n = int(input().strip())

# 假设数据表记录存储在列表中,每个元素是一个元组,包含索引和数值  
# records = [  (1, 10),  (2, 20),  (1, 30),  (3, 40),  (2, 50)]  
records = []
for i in range(n):
    # 转成int
    numbers = list(map(int, input().strip().split(' ')))
    records.append(tuple(numbers))

# print(records)

# 定义一个空字典用于存储合并后的键值对  
merged_dict = {}  

# 遍历数据表记录 ,(index,value)
for index, value in records:  
    # 如果索引已经在合并字典中,则将当前值累加到已有值上  
    if index in merged_dict:  
        merged_dict[index] += value  
    # 如果索引不在合并字典中,则将索引和值添加到字典中  
    else:  
        merged_dict[index] = value  

# print(merged_dict)
# 对合并后的键值对按照索引升序排序  
# 先转成列表dict_items([('name', 'John'), ('age', 30), ('city', 'New York')])
sorted_pairs = sorted(merged_dict.items())

# 输出合并后的键值对  
for index, value in sorted_pairs:
    print(f"{index} {value}")

by 软件工程小施同学

相关推荐
汀、人工智能5 小时前
[特殊字符] 第40课:二叉树最大深度
数据结构·算法·数据库架构·图论·bfs·二叉树最大深度
沉鱼.445 小时前
第十二届题目
java·前端·算法
大熊背6 小时前
ISP Pipeline中Lv实现方式探究之三--lv计算定点实现
数据结构·算法·自动曝光·lv·isppipeline
一直在想名7 小时前
Flutter 框架跨平台鸿蒙开发 - 社交关系星图
flutter·华为·harmonyos
西岸行者7 小时前
BF信号是如何多路合一的
算法
大熊背7 小时前
ISP Pipeline中Lv实现方式探究之一
算法·自动白平衡·自动曝光
罗西的思考8 小时前
【OpenClaw】通过 Nanobot 源码学习架构---(5)Context
人工智能·算法·机器学习
AI_零食8 小时前
开源鸿蒙跨平台Flutter开发:昼夜节律与睡眠相位-脑电波周期与最佳苏醒测绘架构
flutter·ui·华为·架构·开源·harmonyos·鸿蒙
李李李勃谦8 小时前
Flutter 框架跨平台鸿蒙开发 - 问题漂流瓶
flutter·华为·harmonyos
Liudef068 小时前
后量子密码学(PQC)深度解析:算法原理、标准进展与软件开发行业的影响
算法·密码学·量子计算