PYTHON_排序
分模块积累,此模块为【排序】。
排序函数 sort() vs sorted():
sort() 仅可用于列表,可直接改变原列表;l.sort(),默认参数 reverse=False 升序排列。
sorted() 可用于任意类型(如字符串等),不会修改原对象,返回新对象;sorted(s),括号内其他参数同 sort()。
1. 输入任意一串数据,按照递增顺序输出结果。
输入:2,6,8,9,1,6,0
输出:[0,1,2,6,6,8,9] 或者:0,1,2,6,6,8,9
'''处理输入''' s=input() l=s.split(',') for i in range(len(l)): l[i]=int(l[i]) '''顺序排序''' l.sort() print(l)
2. 输入任意一串数据,按照递减顺序输出结果。
输入:2,6,8,9,1,6,0
输出:[9,8,6,6,2,1,0] 或者:9,8,6,6,2,1,0
'''处理输入''' s=input() l=s.split(',') for i in range(len(l)): l[i]=int(l[i]) '''逆序排序''' l.sort(reverse=True) print(l)
3. 给定一个正整数N,将1到N之间(包含1和N)的正整数按偶数递增、奇数递减的顺序排列输出(先输出偶数,再输出奇数)。
例如:给定正整数为5,1到5之间偶数有2、4,按偶数递增顺序排列为[2,4];1到5之间奇数递减顺序排列为[5,3,1],故输出的结果为:2,4,5,3,1
样例输入:5
样例输出:2,4,5,3,1
'''输出''' n=eval(input()) '''初始化''' l_oushu=[] l_jishu=[] '''判断''' for i in range(1,n+1): if i%2==0: l_oushu.append(i) else: l_jishu.append(i) '''排序''' l_oushu.sort() l_jishu.sort() '''输出,边界条件''' for oushu in l_oushu: print(oushu,end=',') for j in range(len(l_jishu)): if j!=len(l_jishu)-1: print(l_jishu[j],end=',') else: print(l_jishu[j])
4. 编写程序,输入一个包含20个整数的列表,对其中偶数下标的元素进行降序排列,奇数下标的元素不变。输出排序后的列表。(提示:使用切片。)
输入样例:[59, 72, 96, 35, 94, 47, 25, 46, 1, 75, 90, 25, 85, 99, 22, 68, 5, 28, 65, 75]
输出样例:[96, 72, 94, 35, 90, 47, 85, 46, 65, 75, 59, 25, 25, 99, 22, 68, 5, 28, 1, 75]
'''处理输出''' s=input() s2=s[1:len(s)-1:] l=s2.split(',') for i in range(0,len(l)): l[i]=int(l[i]) '''取出偶数切片,再放回''' l2=l[::2] l2.sort(reverse=True) l[::2]=l2 print(l)
5. 输入3个长度不同的字符串,对字符串长度排序。(目前非最优解法)
输入(Input):三个字符串(分三行输入)
输出(Output):由小到大的顺序输出字符串(分三行输出)
示例1(Sample1):
输入(Input):
happy!
eat!
play!
输出(Output):
eat!
play!
happy!
示例2(Sample2):
输入(Input):
111
tyucy
#
输出(Output):
#
111
tyucy
'''处理输入''' s1=input() s2=input() s3=input() '''初始化、排序''' l1=len(s1) l2=len(s2) l3=len(s3) l=[] l.append(l1) l.append(l2) l.append(l3) l.sort() '''标记、判断输出''' flag_1=flag_2=flag_3=0 for i in range(3): if l[i]==l1 and flag_1==0: print(s1) flag_1=1 elif l[i]==l2 and flag_2==0: print(s2) flag_2=1 elif l[i]==l3 and flag_3==0: print(s3) flag_3=1
6. 输入一个字符串,去掉重复的字符后,按照升序排序后输出。
输入样例:ajldjlajfdljfddd
输出样例:adfjl
'''输入、初始化''' s=input() s2=[] '''往后检查是否重复(去重)''' for i in range(len(s)): for j in range(i+1,len(s)): if s[i]==s[j]: break else: s2.append(s[i]) '''排序''' s2.sort() '''逐个输出''' for c in s2: print(c,end='')
-END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构