iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >pythonlist.sort()根据多个关键字排序的方法实现
  • 529
分享到

pythonlist.sort()根据多个关键字排序的方法实现

2024-04-02 19:04:59 529人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言: 另一用法 sort 与 sorted 区别:前言: 加入我需要对如下几个文件按照从下到大排序,可是他的关键字有多个应该怎么办了? 例如我希望005开头在006和007的

前言:

加入我需要对如下几个文件按照从下到大排序,可是他的关键字有多个应该怎么办了?

例如我希望005开头在006和007的前面,然后005内部我希望12排在15前面

005x12.jpg
006x01.jpg
007x03.jpg
005x15.jpg
007x10.jpg
006x04.jpg

解决方法:

利用list.sort()中的多个关键字排序功能,先按照key1排序,再按照key2排序


list.sort(key=lambda x: (key1, key2))

例如


filename=[005x12.jpg, 006x01.jpg, 007x03.jpg, 005x15.jpg, 007x10.jpg, 006x04.jpg]
filename.sort(key=lambda x: (int(x[2]), int(x[4: -4]))
for i in len(filename):
 print(i)

结果如下:

005x12.jpg
005x15.jpg
006x01.jpg
006x04.jpg
007x03.jpg
007x10.jpg

排序完成

另一用法

我需要对a按照正在前,负在后,并且绝对值从小到大排序


a = [4, 2, 1, 3, -1, -8, -3, -2]
a.sort(key=lambda x: (x<0, abs(x)))
print(a)

输出为:

[1, 2, 3, 4, -1, -2, -3, -8]

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

sorted 语法:


sorted(iterable[, cmp[, key[, reverse]]])

参数说明:

  • iterable -- 可迭代对象。
  • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

python的sorted的使用方法:


>>>a = [5,7,6,3,4,1,2]
>>> b = sorted(a) # 保留原列表
>>> a 
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]

>>> L=[('b',2),('a',1),('c',3),('d',4)]
>>> sorted(L, cmp=lambda x,y:cmp(x[1],y[1])) # 利用cmp函数
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>> sorted(L, key=lambda x:x[1]) # 利用key
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]


>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>> sorted(students, key=lambda s: s[2]) # 按年龄排序
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

>>> sorted(students, key=lambda s: s[2], reverse=True) # 按降序
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

 补充点小知识:

1、{{ value|add:10 }} #value =5 则返回15
2、{{ value|add:-10 }} #加一个负数,也相当于减去。
3、{% widthratio 5 1 100 %} #这段代码表示:5/1*100,返回500,widthratio需要三个参数,他会使用参数1/参数2*参数3
#如果要进行乘法操作的话,可将参数1等于参数2即可。

到此这篇关于Python list.sort()根据多个关键字排序的方法实现的文章就介绍到这了,更多相关python list.sort()关键字排序内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: pythonlist.sort()根据多个关键字排序的方法实现

本文链接: https://www.lsjlt.com/news/159048.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • pythonlist.sort()根据多个关键字排序的方法实现
    目录前言: 另一用法 sort 与 sorted 区别:前言: 加入我需要对如下几个文件按照从下到大排序,可是他的关键字有多个应该怎么办了? 例如我希望005开头在006和007的...
    99+
    2024-04-02
  • python如何实现字典根据键从小到大排序
    小编给大家分享一下python如何实现字典根据键从小到大排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!字典根据键从小到大排序...
    99+
    2024-04-02
  • php二维数组根据某个字段排序怎么实现
    可以使用usort()函数来实现二维数组根据某个字段排序。 下面是一个示例代码: $students = array( ar...
    99+
    2023-10-27
    php
  • Python根据字典值对字典进行排序的三种方法实例
    目录一、实际场景及解决思路二、字典排序的三种实现方法2.1 使用列表解析方法实现字典排序2.2 使用zip方法实现字典排序2.3 使用传递sorted函数的key参数实现字典排序三、...
    99+
    2024-04-02
  • PHP中怎么利用Ksort()函数根据关键字对数组进行排序
    今天就跟大家聊聊有关PHP中怎么利用Ksort()函数根据关键字对数组进行排序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体代码如下:<php $data&nbs...
    99+
    2023-06-17
  • java8 stream多字段排序的实现
    很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理 使用java8新特性,下面先来点基础的 List<类> list; ...
    99+
    2024-04-02
  • oracle实现根据字段分组排序,取其第一条数据
    目录以某个字段分组 取其第一条数据oracle中对表中数据分组排序取最值首先创建操作表emp业务场景总结以某个字段分组 取其第一条数据 select *   from (s...
    99+
    2023-02-28
    oracle分组 oracle字段分组排序 oracle取数据
  • Python字典“键”和“值”的排序5种方法
    目录使用 sorted() 函数使用 itemgetter() 函数使用 OrderedDict 类使用 zip() 函数使用 Pandas 库使用 sorted() 函数 使用 s...
    99+
    2023-05-13
    Python字典键和值排序 Python字典排序
  • 5种Python字典“键”和“值”的排序方法
    使用 sorted() 函数 使用 sorted() 函数对字典进行排序,将其转换为元组列表,再按照指定的键或者值进行排序。 按照键排序的示例代码 d = {'apple': 4, 'banana':...
    99+
    2023-09-10
    python 信息可视化 数据挖掘
  • sql多字段排序的方法是什么
    在SQL中,可以使用ORDER BY子句来对多个字段进行排序。可以按照多个字段的优先级进行排序,例如: SELECT col...
    99+
    2024-04-30
    sql
  • java8 stream的多字段排序实现(踩坑)
    关于java8 的stream排序用法这里不做多说,这里介绍下曾经在多字段排序时遇到过的一个坑。 需求:需要根据id去分组,然后取出每组中行号最大的一个对象值。 想到可以利用stre...
    99+
    2024-04-02
  • mysql多条件排序的实现方法是什么
    MySQL中可以使用ORDER BY子句来实现多条件排序。ORDER BY子句可以接受多个排序条件,每个条件可以是升序(ASC)或降...
    99+
    2023-08-25
    mysql
  • Java编程实现汉字按字母顺序排序的方法示例
    本文实例讲述了Java编程实现汉字按字母顺序排序的方法。分享给大家供大家参考,具体如下:String[] str0 = new String[]{"abd","ervcd","sdfc","abdc","sded","生活","文教","政...
    99+
    2023-05-31
    java 汉字 字母
  • MySQL中asc、desc数据排序的实现方法
    这篇文章将为大家详细讲解有关MySQL中asc、desc数据排序的实现方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据排序 asc、desc1、单一字段排序orde...
    99+
    2024-04-02
  • 利用Java实现一个希尔排序的方法
    利用Java实现一个希尔排序的方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、希尔排序(Shell Sort)希尔排序(Shell Sort)是一种插入排序算法,因D...
    99+
    2023-05-31
    java 希尔排序 ava
  • python乱序字符串排序的实现方式
    目录python乱序字符串排序什么是乱序字符串排序检查乱序字符串检查算法研究 解法一解法二解法三python乱序字符串排序 什么是乱序字符串排序 乱序字符串排序是指一个字符...
    99+
    2024-04-02
  • mysql两个字段排序的方法是什么
    通过使用 ORDER BY 子句可以对MySQL查询的结果进行排序。如果想要按照多个字段进行排序,可以在ORDER BY子句中同时指...
    99+
    2024-04-17
    mysql
  • PHP中的关键字:HTTP重定向的实现方法
    在Web开发中,HTTP重定向是一种常见的技术,它可以将用户的请求重定向到另一个URL,以实现页面跳转等功能。在PHP中,我们可以使用header函数来实现HTTP重定向,本文将详细介绍PHP中HTTP重定向的实现方法。 一、HTTP重定...
    99+
    2023-11-03
    http 重定向 关键字
  • Java实现按照大小写字母顺序排序的方法
    本文实例讲述了Java实现按照大小写字母顺序排序的方法。分享给大家供大家参考,具体如下:这里排序需要得到的结果按字母顺序。如:a-----z...import java.util.*;public class z { //上边是按大写在后的...
    99+
    2023-05-30
    java 字母 排序
  • javascript中定义方法的关键字是哪个
    这篇文章给大家分享的是有关javascript中定义方法的关键字是哪个的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JavaScript有什么特点1、js属于一种解释性脚本语言;2、在绝大多数浏览器的支持下,js...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作