题目描述
数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例1
输入
4
0 1
0 2
1 2
3 4
输出
0 3
1 2
3 4
解题思路
首先设置for循环,多次输入,将每次输入的字符串按照空格拆分未数组,并设置字段,判断list[0]的值在字段key值内就累加,没有就写入字典内,最后字段的key与value分别排序输出
num=input()
z={}
for i in range(int(num)):
a=input()
a=a.split(" ")
if int(a[0]) in z:
z[int(a[0])]=z[int(a[0])]+int(a[1])
else:
z[int(a[0])]=int(a[1])
o=[]
for i in z.keys():
o.append(i)
o=set(o)
for i in o:
print(i,z[i])
注:这里数组转集合实现了快速排序