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

posted @   找回那所有、  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
这里到底了哦~(●'◡'●)
点击右上角即可分享
微信分享提示