分类:字典排序
知识点:
-
将输入转成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):# 转成intnumbers = 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 软件工程小施同学