合并表记录(华为机试,Python实现)

这篇博客介绍了如何使用Python处理合并表记录的问题,涉及将相同索引的数值求和,并按升序输出。博主给出了题目的详细描述、分析、测试用例,以及相关函数的链接,包括input()、split()、map()、list()、int()、keys()、sort()、str()和print()等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

题目描述

题目分析

测试用例

代码

传送门


题目描述

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

输入/输出示例:

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

输入示例:
    4
    0 1
    0 2
    1 2
    3 4

输出示例

输出示例:
    0 3
    1 2
    3 4

题目分析

首先定义一个整型变量接受输入的总次数,以及一个空字典。使用循环,接受每次输入的键值对。

在每次输入的键值对中,将键和值分别取出,判断新输入的键是否存在与字典中。

    若存在于字典中,则新输入的值与字典中的老值相加,得到该键对应的值;

    否则,将新输入的键值对添加入字典中。

最后,将输入完毕后的字典按照键数值大小顺序排序输出键值对。使用keys()函数将键取出到一个列表中,对列表排序,然后按照列表顺序打印出字典中的键值对,就是最终的结果。

测试用例

1. 输入的键值中存在重复的键

2. 输入的键值中存在不重复的键

代码

amount = int(input())
dictionary = {}

for i in range(amount):
    input_list = list(map(int, input().split()))
    current_key = input_list[0]
    current_value = input_list[1]

    if current_key in dictionary:
        new_value = dictionary[current_key] + current_value
        dictionary[current_key] = new_value
    else:
        dictionary[current_key] = current_value

keys = list(dictionary.keys())
keys.sort()

for element in keys:
    value = dictionary[element]
    print(str(element) + ' ' + str(value))

传送门

1. input()函数

https://blog.youkuaiyun.com/TCatTime/article/details/82556033

2. split()函数

https://blog.youkuaiyun.com/TCatTime/article/details/82053259

3. map()函数

https://blog.youkuaiyun.com/TCatTime/article/details/82942412

4. list()函数

https://blog.youkuaiyun.com/TCatTime/article/details/82947385

5. int()函数

https://blog.youkuaiyun.com/TCatTime/article/details/82826824

6. keys()函数

https://blog.youkuaiyun.com/TCatTime/article/details/82949133

7.  sort()函数

https://blog.youkuaiyun.com/TCatTime/article/details/82972984

8. str()函数

https://blog.youkuaiyun.com/TCatTime/article/details/82963437

9. print()函数

https://blog.youkuaiyun.com/TCatTime/article/details/83450692

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值