绝对值排序

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


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

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

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

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

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

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

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

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

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

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

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

 答案01


list1=eval(input())
list1.sort(key=lambda x:(abs(x),x),reverse=True)
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

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值