• 绝对值排序


    类型:列表元组‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬


    描述‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    读入一个列表,按照绝对值从大到小排序,如果绝对值相同,则正数在前面。例如列表[3,-4,2,4],排序后的结果为[4,-4,3,2]‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    建议使用list1=eval(input())直接读入一个列表。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    输入格式‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    题目的输入为一行,是一个元素类型都是数值的列表,形如[3,-4,2,4]。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    输出格式‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    输出为一行,是按照绝对值从大到小排序后的列表里的元素,元素之间用一个英文半角逗号分隔,形如4,-4,3,2‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    示例1‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    1. 输入:[3,-4,2,4]
    2. 输出:4,-4,3,2

    示例2‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    1. 输入:[5.2,3,4,6,-5.2]
    2. 输出:6,5.2,-5.2,4,3

     答案01

    1. list1=eval(input())
    2. list1.sort(key=lambda x:(abs(x),x),reverse=True)
    3. print(','.join(map(str,list1)))

     print(','.join(map(str,list1)))

    这句代码的意思是:对sorted_lst列表中的每个元素使用str函数进行转换(将每个元素转换为字符串),然后用,将这些字符串连接起来,最后输出结果。

    这句代码中用到了两个Python内置函数:

    1.map()函数:这个函数接收两个参数,一个是函数,一个是可迭代对象(如列表)。它会将函数应用到可迭代对象的每个元素上,并返回一个包含所有结果的迭代器。

    在这个例子中,map(str, sorted_lst)str函数应用到sorted_lst的每个元素上,返回一个包含所有字符串形式的元素的迭代器。
    2. join()函数:这个函数是字符串的一个方法,用于将一个字符串列表(或其他可迭代对象)中的所有字符串连接起来,形成一个新的字符串。它接收一个字符串作为参数,这个字符串将被用作各个元素之间的分隔符。

    在这个例子中,','.join(...)将使用,作为分隔符,将map()函数返回的迭代器中的所有字符串连接起来。

    这句代码的作用是将sorted_lst列表中的每个元素转换为字符串,然后用,将这些字符串连接起来,最后输出结果。

    list1.sort(key=lambda x:(abs(x),x),reverse=True)

    这句代码的意思是:对list1列表进行原地排序(即修改list1本身,而不是创建一个新的排序后的列表),排序的关键字是一个自定义的函数,这个函数接收一个元素x,并返回一个元组(abs(x), x)。这个元组首先按照元素的绝对值(abs(x))进行排序,如果绝对值相同,则按照元素本身(x)进行排序。reverse=True表示进行降序排序,即绝对值大的元素在前,绝对值小的元素在后;如果绝对值相同,则负数在后,正数在前。

    具体来说,这句代码中用到了以下的知识点:

    1. sort()方法:这是Python中列表的一个方法,用于对列表进行原地排序。它接收一个可选的key参数,用于指定排序的关键字。key参数应该是一个函数,这个函数接收一个元素,并返回一个用于排序的值。
    2. lambda函数:这是Python中的一种匿名函数,用于定义一个简单的函数。在这个例子中,lambda x: (abs(x), x)定义了一个函数,这个函数接收一个元素x,并返回一个元组(abs(x), x)
    3. 元组比较:在Python中,元组可以进行比较操作。当比较两个元组时,首先比较元组的第一个元素,如果第一个元素相同,则比较第二个元素,以此类推。在这个例子中,元组的第一个元素是元素的绝对值(abs(x)),第二个元素是元素本身(x)。
    4. reverse参数:这是sort()方法的一个可选参数,用于指定排序的顺序。如果reverse=True,则进行降序排序;如果reverse=False(默认值),则进行升序排序

    总的来说,这句代码的作用是按照元素的绝对值进行降序排序,如果绝对值相同,则按照元素本身进行排序(负数在后,正数在前)。

     

    答案02

    1. list1=eval(input())
    2. # 使用sorted函数和自定义的排序关键字对列表进行排序
    3. sorted_lst = sorted(list1, key=lambda x: (abs(x), x),reverse=True)
    4. for x in range(len(sorted_lst)):
    5. print(sorted_lst[x],end="")
    6. if x!=len(sorted_lst)-1:
    7. print(",",end="")

     

  • 相关阅读:
    Dockerfile自定义容器
    DBSCAN算法c++实现
    iOS小技能:苹果书签打包教程【WebClip描述文件(WebClip Configuration Profile)】
    SpringCloud -- Nacos配置管理
    基于ZYNQ-7000的AI加速器设计之Python网络编程(TCP协议)
    1.jetson装jtop
    pr为什么要remove assign?
    HarmonyOS应用开发JSAPI—js获取相册权限调用相册图片
    使用 ahooks 中的 useRequest 轻松管理React中的网络请求
    Python基于HRHet的跌倒检测系统(源码&教程)
  • 原文地址:https://blog.csdn.net/Crush_66/article/details/133564433