描述
数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
提示:
0 <= index <= 11111111
1 <= value <= 100000
输入描述:
先输入键值对的个数n(1 <= n <= 500)
接下来n行每行输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例1
输入:
4
0 1
0 2
1 2
3 4
复制
输出:
0 3
1 2
3 4
复制
示例2
输入:
3
0 1
0 2
8 9
复制
输出:
0 3
8 9
def getPlus(iv_lis,n):
lis = iv_lis
index = [ i[0] for i in lis ]
# print('index:',index)
# keys = sorted(set(index),key=index.index)
keys = sorted(set(index))
# print('keys:',keys)
num = n
dic = {}
for i in range(num):
if lis[i][0] not in dic:
# print(lis[i])
dic[lis[i][0]] = lis[i][1]
# print('1: ',dic)
elif lis[i][0] in dic:
dic[lis[i][0]] += lis[i][1]
# print('2: ',dic)
# print(dic,type(dic))
for i in range(len(keys)):
# print(i)
# print(keys[i])
# print(dic[keys[i]])
print(keys[i],dic[keys[i]])
n = int(input())
lis = []
for i in range(n):
index,value = map(int,input().split(' '))
lis.append([index,value])
getPlus(iv_lis = lis,n = n)
27
8 46828
24 47153
3 93735
13 72600
4 44422
8 73704
12 52139
19 47649
21 10445
15 63369
20 48412
17 57017
18 9379
16 51964
19 70049
0 72000
25 38544
18 21967
24 90219
2 17950
3 51355
14 32107
25 81332
23 95607
10 69407
12 53131
19 87351
0 72000
2 17950
3 145090
4 44422
8 120532
10 69407
12 105270
13 72600
14 32107
15 63369
16 51964
17 57017
18 31346
19 205049
20 48412
21 10445
23 95607
24 137372
25 119876