目录
题目描述
合并表记录:数据表记录包含索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入/输出示例:
先输入键值对的个数,然后输入成对的index和value值,以空格隔开。例如:
输入示例:
4
0 1
0 2
1 2
3 4
输出示例
输出示例:
0 3
1 2
3 4
题目分析
首先定义一个整型变量接受输入的总次数,以及一个空字典。使用循环,接受每次输入的键值对。
在每次输入的键值对中,将键和值分别取出,判断新输入的键是否存在与字典中。
若存在于字典中,则新输入的值与字典中的老值相加,得到该键对应的值;
否则,将新输入的键值对添加入字典中。
最后,将输入完毕后的字典按照键数值大小顺序排序输出键值对。使用keys()函数将键取出到一个列表中,对列表排序,然后按照列表顺序打印出字典中的键值对,就是最终的结果。
测试用例
1. 输入的键值中存在重复的键
2. 输入的键值中存在不重复的键
代码
amount = int(input())
dictionary = {}
for i in range(amount):
input_list = list(map(int, input().split()))
current_key = input_list[0]
current_value = input_list[1]
if current_key in dictionary:
new_value = dictionary[current_key] + current_value
dictionary[current_key] = new_value
else:
dictionary[current_key] = current_value
keys = list(dictionary.keys())
keys.sort()
for element in keys:
value = dictionary[element]
print(str(element) + ' ' + str(value))
传送门
1. input()函数
https://blog.youkuaiyun.com/TCatTime/article/details/82556033
2. split()函数
https://blog.youkuaiyun.com/TCatTime/article/details/82053259
3. map()函数
https://blog.youkuaiyun.com/TCatTime/article/details/82942412
4. list()函数
https://blog.youkuaiyun.com/TCatTime/article/details/82947385
5. int()函数
https://blog.youkuaiyun.com/TCatTime/article/details/82826824
6. keys()函数
https://blog.youkuaiyun.com/TCatTime/article/details/82949133
7. sort()函数
https://blog.youkuaiyun.com/TCatTime/article/details/82972984
8. str()函数
https://blog.youkuaiyun.com/TCatTime/article/details/82963437
9. print()函数
https://blog.youkuaiyun.com/TCatTime/article/details/83450692