猫史档案馆


【Python作品分享】排序函数【教程贴】

用户:沫颖龙沫颖龙查看:3 回复:1 评论:3 创建时间:2023-05-14T10:27:31


【作品展示】

center_image

 

【作品介绍】

排序函数

第44行的列表可以修改数值

 

【作品源代码】

'''
本次知识点:def定义函数
格式:
def 函数名(参数一,参数二):
    程序内容
调用:
函数名(参数一的值,参数二的值)
注:如果在参数后加上“=默认值”,那你不输入这个参数,就会执行这个默认值
'''
#初始定义函数
def mymax(x):  # 创建判断最大数值函数
    m = x[0]  # 新建一个变量(m)为x第一个(也就是索引为0)
    for i in x:     #遍历列表
        if i > m:   #如果这一项大于m变量
            m = i   #把m替换成这一项
    return m    #返回m变量


def mymin(x):   # 创建判断最大数值函数
    m = x[0]    # 新建一个变量(m)为x第一个(也就是索引为0)
    for i in x:  # 遍历列表
        if i < m:  # 如果这一项小于m变量
            m = i  # 把m替换成这一项
    return m  # 返回m变量


def mysorted(x, yn='升序'):  #开始定义排序,x为列表名,yn为判断升降序(默认为升序)
    s = []  # 创建一个空列表
    if yn == '升序':    #判断:如果接收到的参数为升序:
        x = list(x)  # 初始化这个列表,防止元组等情况。
        for i in range(len(x)):     #遍历‘这个列表的项目数’次
            m = mymin(x)    #调用我们刚才定义的“最小”函数(这里也可以用python自带的min)
            x.remove(m)  # 删除原列表中的最小数
            s.append(m)  # 将刚刚删除的加入新列表
        return s    #遍历完后,返回新列表
    if yn == '降序':
        x = list(x)  # 初始化这个列表,防止元组等情况。
        for i in range(len(x)):  # 判断:如果接收到的参数为升序:
            m = mymax(x)  # 调用我们刚才定义的“最大”函数(这里也可以用python自带的max)
            x.remove(m)     #删除原列表中的最大数
            s.append(m)     # 将刚刚删除的加入新列表
        return s  # 遍历完后,返回新列表
#--------------------------------------------------------------------------------------------
mlist = [-3, 2, 5, 21, 0, -4, 3321, 3286, 543, 23.1, 1293.32]  # 创建需要用的数据列表
#以下展示三种情况
print(mysorted(mlist,'升序'))   #第一种情况:输入升序
print(mysorted(mlist, '降序'))  # 第一种情况:输入降序
print(mysorted(mlist, '升序'))  # 第一种情况:啥也不输入,默认升序

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
SCS_user_EHQ0z2l6elSCS_user_EHQ0z2l6el

这应该是另一种形式的选择排序

点赞0


评论