python list排序参数实现二维数组按照第2列排序

简介: python list排序参数实现二维数组按照第2列排序

list 的sort方法是将list里面的数据直接排序,排序后,list的数据顺序会变化。


而如果list是一个二维数组,也就是list 的list,想按照第2列排序,怎么做?就是说,list是以下的矩阵形式:

 

list[0]: [4,2]
    list[1]: [3,1]
    list[2]: [5,0]
    list[3]: [1,6]


注意到sort自己的参数就有提及:

list.sort(cmp=None, key=None, reverse=False)


参数定义


key定义按照哪一个元素排序。如果对于列表中的元素,可以选择其他的跟元素list[i]有关的值,则key可以是一个作用于list[i]的函数。比如:

def take2(elem):
        return elem[1]
    list1 =[(4,2),(3,1),(5,0), (1,6)]
    list1.sort(key = take2)
    print(list1)
    >>[(5, 0), (3, 1), (4, 2), (1, 6)]

这里,list[i]是一个tuple,elem[1]返回第二个元素。则sort会按照第2个元素来排序,是不是很方便啊?


python 2中,cmp是一个callable的函数。如果用个lambda算子来写最基础的升序排序,就是:

lambda x,y: x-y

这里,x-y在x>y时返回正值,cmp是正返回值时,交换两个元素,则最后就是一个升序排序。


如果这个函数一直返回True,则不排序,list还是原list。


但是注意,python 3里面取消了sort的cmp参数了。它的定义是:

L.sort(key=None, reverse=False) -> None



目录
相关文章
|
4月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1484 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
1月前
|
前端开发 JavaScript UED
React 拖拽排序组件 Draggable List
在现代Web应用中,拖拽排序功能显著提升用户体验。使用React结合`react-dnd`库,可以轻松创建高效且易于维护的拖拽排序组件。通过简单的拖拽操作,用户能直观调整列表项顺序,适用于任务管理、看板工具等场景。实现步骤包括项目初始化、安装依赖、创建基础组件、添加拖拽功能及管理状态和事件。常见问题如拖拽效果不流畅、顺序未更新等可通过性能优化、正确处理索引交换等方式解决。移动端支持也需考虑,确保跨平台的良好体验。
101 25
|
24天前
|
数据挖掘 数据处理 开发者
Python3 自定义排序详解:方法与示例
Python的排序功能强大且灵活,主要通过`sorted()`函数和列表的`sort()`方法实现。两者均支持`key`参数自定义排序规则。本文详细介绍了基础排序、按字符串长度或元组元素排序、降序排序、多条件排序及使用`lambda`表达式和`functools.cmp_to_key`进行复杂排序。通过示例展示了如何对简单数据类型、字典、类对象及复杂数据结构(如列车信息)进行排序。掌握这些技巧可以显著提升数据处理能力,为编程提供更强大的支持。
29 10
|
2月前
|
分布式计算 MaxCompute 对象存储
|
2月前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
76 14
|
3月前
|
搜索推荐 Python
快速排序的 Python 实践:从原理到优化,打造你的排序利器!
本文介绍了 Python 中的快速排序算法,从基本原理、实现代码到优化方法进行了详细探讨。快速排序采用分治策略,通过选择基准元素将数组分为两部分,递归排序。文章还对比了快速排序与冒泡排序的性能,展示了优化前后快速排序的差异。通过这些分析,帮助读者理解快速排序的优势及优化的重要性,从而在实际应用中选择合适的排序算法和优化策略,提升程序性能。
77 1
|
3月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
62 0
|
4月前
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
49 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
|
5月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
35 3
|
6月前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)

热门文章

最新文章