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



目录
打赏
0
0
0
0
7
分享
相关文章
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1499 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
React 拖拽排序组件 Draggable List
在现代Web应用中,拖拽排序功能显著提升用户体验。使用React结合`react-dnd`库,可以轻松创建高效且易于维护的拖拽排序组件。通过简单的拖拽操作,用户能直观调整列表项顺序,适用于任务管理、看板工具等场景。实现步骤包括项目初始化、安装依赖、创建基础组件、添加拖拽功能及管理状态和事件。常见问题如拖拽效果不流畅、顺序未更新等可通过性能优化、正确处理索引交换等方式解决。移动端支持也需考虑,确保跨平台的良好体验。
152 25
Python3 自定义排序详解:方法与示例
Python的排序功能强大且灵活,主要通过`sorted()`函数和列表的`sort()`方法实现。两者均支持`key`参数自定义排序规则。本文详细介绍了基础排序、按字符串长度或元组元素排序、降序排序、多条件排序及使用`lambda`表达式和`functools.cmp_to_key`进行复杂排序。通过示例展示了如何对简单数据类型、字典、类对象及复杂数据结构(如列车信息)进行排序。掌握这些技巧可以显著提升数据处理能力,为编程提供更强大的支持。
48 10
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
59 9
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
90 14
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
176 10
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
在 Python 中,创建列表有两种方法:使用方括号 `[]` 和调用 `list()` 函数。虽然两者都能创建空列表,但 `[]` 更简洁、高效。性能测试显示,`[]` 的创建速度比 `list()` 快约一倍。此外,`list()` 可以接受一个可迭代对象作为参数并将其转换为列表,而 `[]` 则需要逐一列举元素。综上,`[]` 适合创建空列表,`list()` 适合转换可迭代对象。
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
快速排序的 Python 实践:从原理到优化,打造你的排序利器!
本文介绍了 Python 中的快速排序算法,从基本原理、实现代码到优化方法进行了详细探讨。快速排序采用分治策略,通过选择基准元素将数组分为两部分,递归排序。文章还对比了快速排序与冒泡排序的性能,展示了优化前后快速排序的差异。通过这些分析,帮助读者理解快速排序的优势及优化的重要性,从而在实际应用中选择合适的排序算法和优化策略,提升程序性能。
101 1
|
4月前
|
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
70 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等