分类:字典排序
知识点:
-
将输入转成int的列表 my_list = list(map(int, input().strip().split(' ')))
-
将列表转为元组 tuple(my_list)
-
访问元素为元组的列表 for first, second, third in my_list:
-
对字典进行排序 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 软件工程小施同学