描述
数据表记录包含表索引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