绝对值排序

这篇具有很好参考价值的文章主要介绍了绝对值排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


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

读入一个列表,按照绝对值从大到小排序,如果绝对值相同,则正数在前面。例如列表[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="")

 文章来源地址https://www.toymoban.com/news/detail-728904.html

到了这里,关于绝对值排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MATLAB】线性规划问题中的绝对值问题

    在求解线性规划问题中碰到绝对值的情况: m i n z = ∣ x 1 ∣ + 2 ∣ x 2 ∣ + 3 ∣ x 3 ∣ + 4 ∣ x 4 ∣ , min z=|x_1|+2|x_2|+3|x_3|+4|x_4|, min z = ∣ x 1 ​ ∣ + 2∣ x 2 ​ ∣ + 3∣ x 3 ​ ∣ + 4∣ x 4 ​ ∣ , s . t . { x 1 − x 2 − x 3 + x 4 = 0 , x 1 − x 2 + x 3 − 3 x 4 = 1 , x 1 − x 2 − 2 x 3 + 3 x 4 = − 1 2

    2023年04月09日
    浏览(81)
  • 概率论习题之标准正态绝对值的期望

    一、主要注意的点 E ∣ X ∣ = 2 Π 计算 : E ∣ X ∣ = ∫ − ∞ + ∞ ∣ X ∣ f ( x ) d x E Z = E ∣ x − μ ∣ E|X|={sqrt{frac{2}{Pi}} }\\\\ 计算:E|X|=displaystyle int^{+infty}_{-infty}{|X|f(x)dx}\\\\ EZ=E|x-mu| E ∣ X ∣ = Π 2 ​ ​ 计算 : E ∣ X ∣ = ∫ − ∞ + ∞ ​ ∣ X ∣ f ( x ) d x EZ = E ∣ x − μ ∣ 二、

    2024年03月14日
    浏览(76)
  • 1749. 任意子数组和的绝对值的最大值

    诸神缄默不语-个人CSDN博文目录 力扣刷题笔记 直接用2个指针从索引0开始找到最后一个索引,时间复杂度大概是 O ( n 2 ) O(n^2) O ( n 2 ) 吧,总之这么搞不行,以下是我用Python写的一些典型失败案例 ↑会超时,这个我觉得应该是 sum() 的问题,所以做了改进: ↑这个又会爆内存,

    2024年02月13日
    浏览(46)
  • C++力扣题目530--二叉搜索树的最小绝对值

    给你一个二叉搜索树的根节点  root  ,返回  树中任意两不同节点值之间的最小差值  。 差值是一个正数,其数值等于两值之差的绝对值。 示例 1: 示例 2: 树中节点的数目范围是  [2, 104] 0 = Node.val = 105 题目中要求在二叉搜索树上任意两节点的差的绝对值的最小值。 注意

    2024年02月02日
    浏览(46)
  • Leetcode19-差的绝对值为K的数对数目(2006)

    给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i j 且 |nums[i] - nums[j]| == k 。 |x| 的值定义为: 如果 x = 0 ,那么值为 x 。 如果 x 0 ,那么值为 -x 。 示例 1: 输入:nums = [1,2,2,1], k = 1 输出:4 解释:差的绝对值为 1 的数对为: [1,2,2,1] [1,2,2,1] [1,2,2,1] [1,

    2024年01月15日
    浏览(50)
  • C# Math和Mathf的使用(小数取整、四舍五入、取绝对值等)

    在C#中我们做一些数学计算时,常会见到Math和Mathf的使用。到底使用哪个,它们有什么区别? 首先了解下它们的定义: Math:是C#中封装好的用于数学计算的一个工具类,命名空间是System; Mathf:是Unity中封装好的用于数学计算的一个工具结构体,命名空间是UnityEngine。 事实上,

    2024年02月07日
    浏览(45)
  • 【力扣每日一题】2023.8.8 任意子数组和的绝对值的最大值

    目录 题目: 示例: 分析: 代码: 题目给我们一个数组,让我们找出它的绝对值最大的子数组的和。 这边的子数组是要求连续的,让我们找出一个元素之和的绝对值最大的连续子数组。 要绝对值最大,那么就是两种情况,最大的正数以及最小的负数,所以我们可以兵分两路

    2024年02月13日
    浏览(44)
  • LeetCode_动态规划_中等_1749.任意子数组和的绝对值的最大值

    给你一个整数数组 nums 。一个子数组 [nums l , nums l+1 , …, nums r-1 , nums r ] 的 和的绝对值 为 abs(nums l + nums l+1 + … + nums r-1 + nums r ) 。请你找出 nums 中和的绝对值 最大的任意子数组(可能为空),并返回该最大值。 abs(x) 定义如下: 如果 x 是负整数,那么 abs(x) = -x 。 如果 x 是非

    2024年02月13日
    浏览(35)
  • 倍福位置记忆--TwinCAT对绝对值编码器溢出圈数的处理--以汇川IS620N为例

    首先配置伺服,如下所示: 根据伺服手册和编码器反馈的数值可知,其每转脉冲数,和最大的记忆圈数: 型号:IS620N 编码器位数:8388608 最大:2149498568 最小:-2149498568 推出最大圈数为256 2=512圈 因此可以得到 汇川编码器结构组成: 共32位:其中精度站23位,圈数占9位,所以

    2024年02月14日
    浏览(47)
  • MT6701磁编码器使用指南,14Bit单圈绝对值,I2C stm32 HAL库读角度,兼容AS5600

      MT6701是麦歌恩(MagnTek)公司的磁性角度传感器芯片,提供14Bit 0~360°单圈绝对角度检测,拥有 ABZ/PWM/模拟量/I2C/SSI 等多种信息输出方式,还可根据磁场强度的瞬时变化提供非接触式按压检测功能。能够以较低的成本来替代传统光电编码器,可应用于绝对值角度输出、闭环

    2024年02月02日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包