栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

华为机考

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

华为机考

华为机考_排序:HJ101 输入整型数组和排序标识 对其元素按照升序或降序进行排序 题目 我的代码 AC 知识点input map join() 总结

题目
描述
输入整型数组和排序标识 对其元素按照升序或降序进行排序
输入描述 
第一行输入数组元素个数
第二行输入待排序的数组 每个数用空格隔开
第三行输入一个整数0或1。0代表升序排序 1代表降序排序
输出描述 
输出排好序的数字
1 2 4 9 3 55 64 25
1 2 3 4 9 25 55 64
1 2 3 4 5
5 4 3 2 1
我的代码 AC
while True:
 try:
 num_1 int(input())
 num_2 input().split()
 num_3 int(input())
 num_2 list(map(int,num_2))
 if num_3 0:
 num_2 sorted(num_2)
 else:
 num_2 sorted(num_2,reverse True)
 num_2 list(map(str,num_2))
 print( .join(num_2))
 except:
 break
知识点 input
 input()在python3把一切输入作字符串处理**并返回一个字符串str** 
 此时的num_2为“1 2 4 9 3 55 64 25” 字符串。
 而sorted 的作用是对所有可迭代对象 元组 字符串 列表等 进行排序并返回一个列表list。
 如果此时用
 sorted(num_2)的话 会返回一个包含空格的list [ , , , , , , , 1 , 2 , 2 , 3 , 4 , 4 , 5 , 5 , 5 , 6 , 9 ] 
 是把字符串的每一位都当初一个单位进行排序。
 为此 用到处理字符串的神技--- str.split()--- num_2 input().split() 
 以空格为分隔符将该字符串分成了一个可迭代的列表list[ 1 , 2 , 4 , 9 , 3 , 55 , 64 , 25 ]
 (注意 列表内的每个元素皆为字符串 。
 如果此时直接进行sorted() 又会造成上次遇到的“高位数截取的问题” 
 : [ 1 , 2 , 25 , 3 , 4 , 55 , 64 , 9 ] 25当成2 55当成5 64当成6 来进行排序 
map
如何将[ 1 , 2 ] 变成[1,2]呢 请全体起立 请出无敌处理机器 
 [map()](https://www.runoob.com/python/python-func-map.html) 
 num_2 list(map(int,num_2)) 
 注意py3中map 返回的迭代后的列表的地址 需要list map 
join()
注意 seq1 [1, 2, 1] 

print(’ .join(seq1)) 会报错 TypeError: sequence item 0: expected str instance, int found
说明join的拼接对象为list turple dic str中的 字符串str元素。
所以这时候再次num_2 list(map(str,num_2)) ,把num_2里的int元素变成str元素 再使用join将列表list转换成字符串最后达到输出条件。

总结

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号