华为机试题:HJ8 合并表记录(python)

阅读: 评论:0

华为机试题:HJ8 合并表记录(python)

华为机试题:HJ8 合并表记录(python)

文章目录

  • 知识点详解
    • 1、int() :将一个字符串或数字转换为整型(强转)。
    • 2、range() :输出指定范围内的所有值(前闭后开)。
    • 3、map():据提供的函数对指定序列做映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。
    • 4、数据结构 dict() :创建字典(键值对)。字典的key是不可变数据类型,而value的数据类型可以任意。
    • 5、():返回指定字典中键的值。若键不在字典中,则返回默认值None。
    • 6、sorted() :对所有可迭代类型进行排序。不改变原始序列,返回排序后的新序列。

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

Python3

num=int(input())
dic={}
for i in range(num):key,value=map(int,input().split())dic[key]&#(key,0)+value
for key in sorted(dic):print((key))
  • input():用于获取控制台的输入。
  • int() :将一个字符串或数字转换为整型(强转)。
  • dict() :创建字典(键值对)。字典的key是不可变数据类型,而value的数据类型可以任意。
  • range() :输出指定范围内的所有值(前闭后开)。
  • map():据提供的函数对指定序列做映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。
  • <():返回指定字典中键的值。若键不在字典中,则返回默认值None。
  • sorted() :对所有可迭代类型进行排序。不改变原始序列,返回排序后的新序列。
  • print() :用于打印输出。

知识点详解

1、int() :将一个字符串或数字转换为整型(强转)。

【Python】int()用法详解

函数说明:int(x, base=10)
输入参数:

  • x:字符串或数字。
  • base:参数x为(二进制、八进制、十进制、十六进制)数,默认十进制数
    备注:若带参数base,则输入必须是整数,且整数必须以字符串的形式进行输入。如:整数12转化为16进制,int('12', base=16)
输入返回值
int()整数 0
int整数)整数
int(浮点数)浮点数的整数
int(字符串(整数))将字符串类型转换为int类型转换
int(字符串(浮点数))需先转换为float类型,再进行int转换,否则报错。
int('整数', base=16)将输入的16进制整数转换为10进制整数(同理:其余进制)
print(int())                    # 【输出结果】0
print(int(2))                   # 【输出结果】2
print(int(-2.9))                # 【输出结果】-2
print(int('-2'))                # 【输出结果】-2
print(int(float('-2.9')))       # 【输出结果】-2print(int('20', 16))       		# 【输出结果】32
print(int('0XAA', 16))       	# 【输出结果】170

2、range() :输出指定范围内的所有值(前闭后开)。

函数说明:range(start=0,stop,step=1)
输入参数:

  • (1)start:序列的起始点,默认值0。
  • (2)stop:序列的终止点。
  • (3)step:滑动步长,默认为1。正数表示迭代上升,负数表示迭代下降。

备注:前闭后开[A,B),即可以取到A值,但取不到B值。

# (1)指定stop=9, start默认为0,step默认为1
for i in range(9):print('A =', i)
'''
A = 0
A = 1
A = 2
A = 3
A = 4
A = 5
A = 6
A = 7
A = 8
'''
# (2)指定start=2, stop=9, step默认为1
for i in range(2, 9):print('B =', i)
'''
B = 2
B = 3
B = 4
B = 5
B = 6
B = 7
B = 8
'''
# (3)指定start=2, stop=9, step=-2
for i in range(9, 2, -2):print('C =', i)
'''
C = 9
C = 7
C = 5
C = 3
'''

3、map():据提供的函数对指定序列做映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。

函数说明:map(function, iterable, ...)
输入参数:

  • function:自定义函数。
  • iterable - - - :一个或多个序列
print('将元组转换为list(返回一个迭代器): ', map(int, (1, 2, 3)))
print('将元组转换为list(使用list()转换为列表): ', list(map(int, (1, 2, 3))))
print('将字符串转换为list: ', list(map(int, '1234')))
print('将字典中的key转换为list: ', list(map(int, {1: 2, 2: 3, 3: 4})))
'''
将元组转换为list(返回一个迭代器):  <map object at 0x0000018507A34130>
将元组转换为list(使用list()转换为列表):  [1, 2, 3]
将字符串转换为list:  [1, 2, 3, 4]
将字典中的key转换为list:  [1, 2, 3]
'''

4、数据结构 dict() :创建字典(键值对)。字典的key是不可变数据类型,而value的数据类型可以任意。

两种创建字典的方法:
(1)dict_temp1 = {key1: value1, key2: value1, key3: value1}
(2)dict_temp2 = dict({key1: value1}) 或 dict(key1=x, value1=10)

  • 不可变数据类型元组,布尔类型(bool),整型(int)、字符串(str)
  • 可变数据类型字典(dict)、列表(list)、集合(set)

备注1:字典是一个无序的数据集合,即输出的顺序和定义的顺序是不一致的。
备注2:字典不支持索引号索引,不支持切片,重复和连接无意义。
备注3:for循环(默认循环遍历字典的key值)。
备注4:成员操作符(默认判断key值是否存在)

11、方法1的使用案例:{}

print('dict0:', {})                                   # 1、传入一个空字典
print('dict1:', {'name': 'li', 'age': 24})            # 2、传入一个字典'''
dict0: {}
dict1: {'name': 'li', 'age': 24}
'''

22、方法2的使用案例:dict()

print('dict0:', dict())                                     # 1、传入一个空字典
print('dict1:', dict({'name': 'li', 'age': 24}))            # 2、传入一个字典
print('dict2:', dict(user='admin', password=123456))        # 3、传入关键字
print('dict3:', dict([('student', 1), ('teacher', 2)]))     # 4、传入一个包含一个或多个元组的列表
print('dict4:', dict(zip(['a', 'A'], [3, 4])))              # 5、传入一个zip()函数'''
dict0: {}
dict1: {'name': 'li', 'age': 24}
dict2: {'user': 'admin', 'password': 123456}
dict3: {'student': 1, 'teacher': 2}
dict4: {'a': 3, 'A': 4}
'''

33、查看字典的元素:dict1.keys、dict1.values、dict1.items、

dict1 = {'http': 80, 'ftp': 21, 'ssh': 22, 1: 22}
print('查看字典里面所有的key值: ', dict1.keys())
print('查看字典里面所有的value值: ', dict1.values())
print('查看字典里面所有的key-value值: ', dict1.items())print('查看指定key对应的value值: ', dict1['ftp'])                # 若key值不存在,程序会报错
print('get方法获取指定key对应的value值: ', ('ftp'))      # 若key值不存在,返回None'''
查看字典里面所有的key值:  dict_keys(['http', 'ftp', 'ssh', 1])
查看字典里面所有的value值:  dict_values([80, 21, 22, 22])
查看字典里面所有的key-value值:  dict_items([('http', 80), ('ftp', 21), ('ssh', 22), (1, 22)])
查看指定key对应的value值:  21
get方法获取指定key对应的value值:  21
'''

44、添加字典中的元素:updata()、setdefault()

  • 如果key值存在,更新value值
  • 如果key值不存在,添加key-value值
dict1 = {'http': 80, 'ftp': 21, 'ssh': 22}
dict1['http'] = 3
dict1['h'] = 3
print('如果key值存在,则更新对应的value值: ', dict1)
print('如果key值不存在,则添加对应的key-value值: ', dict1)'''
如果key值存在,则更新对应的value值:  {'http': 3, 'ftp': 21, 'ssh': 22}
如果key值不存在,则添加对应的key-value值:  {'http': 3, 'ftp': 21, 'ssh': 22, 'h': 3}
'''##############################################################
dict2 = {1: 88, 2: 66}
dict1.update(dict2)
print('updata()添加元素: ', dict1)
# updata()添加元素:  {'http': 3, 'ftp': 21, 'ssh': 22, 'h': 3, 1: 88, 2: 66}##############################################################
dict1.setdefault(3, 99)
print('setdefault()添加元素: ', dict1)
# setdefault()添加元素:  {'http': 3, 'ftp': 21, 'ssh': 22, 'h': 3, 1: 88, 2: 66, 3: 99}

55、删除字典中的元素:del、pop()、popitem()、clear()

dict1 = {'http': 80, 'ftp': 21, 'ssh': 22, 1: 22}
#####################################################
del dict1['http']
print('del 删除指定的key-value值: ', dict1)
#####################################################
dict1.pop('ftp')
print('pop() 弹出指定的key-value值: ', dict1)
#####################################################
dict1.popitem()
print('popitem() 删除最后一个key-value: ', dict1)
#####################################################
dict1.clear()
print('clear() 清空字典内容: ', dict1)'''
del 删除指定的key-value值:  {'ftp': 21, 'ssh': 22, 1: 22}
pop() 弹出指定的key-value值:  {'ssh': 22, 1: 22}
popitem() 删除最后一个key-value:  {'ssh': 22}
clear() 清空字典内容:  {}
'''

66、for循环(默认循环遍历字典的key值)

for key in dict1:print('for循环:', key)
'''
for循环: http
for循环: ftp
for循环: ssh
for循环: h
'''    

5、():返回指定字典中键的值。若键不在字典中,则返回默认值None。

函数说明:<(key, default=None)
输入参数:

  • key:字典中要查找的键。
  • default:如果指定键的值不存在时,返回该默认值。
dict1 = {'国家': '中国', '首都': '北京'}
('国家'))
('首都'))
('省会'))('省', 0))'''
中国
北京
None
0
'''

6、sorted() :对所有可迭代类型进行排序。不改变原始序列,返回排序后的新序列。

函数说明:sorted(iterable, key=None, reverse=False)
输入参数:

  • iterable:可迭代的对象(如:字典、列表)。
  • key:可迭代类型中某个属性,对指定函数进行排序。默认=None
  • reverse:升序reverse=False(默认)降序reverse=Ture

备注:字符串按照ASCII的大小进行排序。默认先排序大写字母,后排序小写字母。

lst1 = (5, 4, 3, -2, 1)
L1 = sorted(lst1)                       # 【输出结果】[-2, 1, 3, 4, 5]
L2 = sorted(lst1, key=abs)              # 【输出结果】[1, -2, 3, 4, 5]
L3 = sorted(lst1, reverse=True)         # 【输出结果】[5, 4, 3, 1, -2]
print(L1)
print(L2)
print(L3)
###################################################################################
lst2 = ('F', 'D', 'Y', 'e', 'a', 'v')
L4 = sorted(lst2)                       # 【输出结果】['D', 'F', 'Y', 'a', 'e', 'v']
L5 = sorted(lst2, key=str.lower)        # 【输出结果】['a', 'D', 'e', 'F', 'v', 'Y']
print(L4)
print(L5)

本文发布于:2024-02-01 14:53:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170677039537394.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:表记   华为   试题   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23