python 合并表记录

'''
题目描述
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开

输出描述:
输出合并后的键值对(多行)

示例1
输入
4
0 1
0 2
1 2
3 4
输出
0 3
1 2
3 4
'''
line_num=int(input())
num_dict={}
for i in range(line_num):
    temp_raw=input().split()
    if temp_raw[0] in num_dict:
        num_dict[temp_raw[0]]+=int(temp_raw[1])
    else:
        num_dict[temp_raw[0]]=int(temp_raw[1])
key_list=[]
value_list=[]
for k,v in num_dict.items():
    key_list.append(int(k))
    value_list.append(int(v))
#对key_list进行排序并求出排序后的索引(数值从小到大的索引)
# 两重循环,找到key_list中的最大数和最小数
index_list=[]
compare_list=key_list.copy()
for i in range(len(key_list)):
    min_index=0
    min_value=float("inf")#这个数值的设定应该是,很容易就让别的数值小于它
    for j in range(len(compare_list)):
        if compare_list[j]<min_value:
            min_value=compare_list[j]
            min_index=j
    compare_list[min_index]=float("inf")#它不可能成为最小值了
    index_list.append(min_index)
for index in index_list:
    print(str(key_list[index])+" "+str(value_list[index]))

猜你喜欢

转载自blog.csdn.net/WYXHAHAHA123/article/details/89462386