题目描述
数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数 然后输入成对的index和value值,以空格隔开输出描述:
输出合并后的键值对(多行)
示例1
输入
4
0 1
0 2
1 2
3 4
输出
0 3
1 2
3 4
题解:
思路:用新数组实现去重的功能,其中用到了字符串的replace函数,记得替换后的数据需要重新引用一下才会生效
#coding=utf-8
n=int(input())
arr=[0]*n
res=[]
for i in range(n):
arr[i]=input()
for ch in arr:
flag=False
if len(res)==0:
res.append(ch)
continue
#去重,合并
for i in range(len(res)):
if res[i][0]==ch[0]:
#注意replace函数的使用方法,需要重新引用才会生效
res[i]=res[i].replace(res[i][2],str(int(res[i][2])+int(ch[2])))
#用作标记是否有合并过
flag=True
break
if flag==False:
res.append(ch)
res.sort()
for ch in res:
print(ch)
说明:
目前本King的代码能力只能按上述方式实现,后续有更好的方案,欢迎各位指点,也会不定期做修改~