您的位置:

如何使用Python对二维数组进行排序

一、了解Python中的排序函数

Python中有内置的排序函数sort(),可对数组进行排序。sort()函数默认使用升序排序。可以使用reverse参数将其改为降序排序。而对于二维数组,可以指定排序的关键字key(按照特定的列进行排序)。

  # 创建一个二维数组
  a = [[1, 2], [4, 1], [3, 6]]
  
  # 默认按第一个元素升序排列
  a.sort()
  print(a)    # [[1, 2], [3, 6], [4, 1]]
  
  # 按第二个元素升序排列
  a.sort(key=lambda x: x[1])
  print(a)    # [[4, 1], [1, 2], [3, 6]]
  
  # 按第二个元素降序排列
  a.sort(key=lambda x: x[1], reverse=True)
  print(a)    # [[3, 6], [1, 2], [4, 1]]

二、多维排序

有时候我们需要按照多个元素进行排序,此时可以使用多次sort()函数或者使用sorted()函数。sorted()函数的参数与sort()函数相同,都有key和reverse参数。

  # 创建一个三维数组
  b = [[1, 2, 3], [2, 3, 1], [4, 1, 5]]
  
  # 按第一列升序排序,第二列升序排序
  b_sorted = sorted(b, key=lambda x: (x[0], x[1]))
  print(b_sorted)    # [[1, 2, 3], [2, 3, 1], [4, 1, 5]]
  
  # 按第一列降序排序,第二列升序排序
  b_sorted = sorted(b, key=lambda x: (-x[0], x[1]))
  print(b_sorted)    # [[4, 1, 5], [2, 3, 1], [1, 2, 3]]

三、自定义排序规则

如果需要使用自己定义的规则来排序,可以使用sort()和sorted()函数的key参数。key参数接受一个函数作为输入,该函数接受一个数组元素作为输入,返回一个用于排序的值。

  # 创建一个字符串二维数组
  c = [['a', 'b'], ['c'], ['d', 'e', 'f']]
  
  # 按元素数量升序排序
  c_sorted = sorted(c, key=lambda x: len(x))
  print(c_sorted)    # [['c'], ['a', 'b'], ['d', 'e', 'f']]
  
  # 按元素数量降序排序
  c_sorted = sorted(c, key=lambda x: len(x), reverse=True)
  print(c_sorted)    # [['d', 'e', 'f'], ['a', 'b'], ['c']]

四、稳定性排序

在排序时,有时候需要保持相等元素的相对位置不变。这种排序被称为稳定性排序。在Python的sort()和sorted()函数中,默认是稳定性排序。

  # 创建一个具有相等元素的二维数组
  d = [[1, 'a'], [2, 'b'], [2, 'c'], [3, 'd'], [1, 'e']]
  
  # 按第一列升序排序
  d_sorted = sorted(d, key=lambda x: x[0])
  print(d_sorted)    # [[1, 'a'], [1, 'e'], [2, 'b'], [2, 'c'], [3, 'd']]
  
  # 按第二列升序排序
  d_sorted = sorted(d, key=lambda x: x[1])
  print(d_sorted)    # [[1, 'a'], [2, 'b'], [2, 'c'], [3, 'd'], [1, 'e']]

五、代码示例

  # 创建一个具有相等元素的二维数组
  d = [[1, 'a'], [2, 'b'], [2, 'c'], [3, 'd'], [1, 'e']]
  
  # 按第一列升序排序
  d_sorted = sorted(d, key=lambda x: x[0])
  print(d_sorted)    # [[1, 'a'], [1, 'e'], [2, 'b'], [2, 'c'], [3, 'd']]
  
  # 按第二列升序排序
  d_sorted = sorted(d, key=lambda x: x[1])
  print(d_sorted)    # [[1, 'a'], [2, 'b'], [2, 'c'], [3, 'd'], [1, 'e']]
如何使用Python对二维数组进行排序

2023-05-19
php把二维数组排序(php对二维数组排序)

2022-11-15
python基础学习整理笔记,Python课堂笔记

2022-11-21
php的二维数组排序,php二维数组按某个键值排序

2022-11-17
Python二维数组排序

一、基本概念 数组是一种常用的数据结构,可以存储多个相同类型的数据。二维数组是一种特殊的数组,它由多个一维数组组成,可以理解为是一个表格,可以用行号和列号来表示数组中的元素位置。排序就是将数组中的元素

2023-12-08
python笔记二(2python)

2022-11-11
python学习之笔记(python的笔记)

2022-11-10
使用Python对数组进行排序

2023-05-09
PHP中使用sort函数对数组进行排序

2023-05-11
最新python学习笔记3,python基础笔记

2022-11-17
印象笔记记录java学习(Java成长笔记)

2022-11-12
php数组排序二维数组排序(下面哪些是PHP数组排序的方法)

2022-11-16
我的python学习基础笔记,python自学笔记

2022-11-18
使用asort函数对PHP数组进行升序排序

PHP是一门功能强大的语言,数组是PHP中十分常用的数据结构之一。在实际开发中,经常需要对数组进行排序。PHP提供了多个函数用于对数组进行排序,其中asort函数可以实现对数组进行升序排序。 一、as

2023-12-08
python方法笔记,python基础教程笔记

2022-11-20
python课堂整理32(python笔记全)

2022-11-12
python学习笔记0(0基础Python)

2022-11-16
python技巧笔记(python自学笔记)

2022-11-12
python笔记第九章,python第八章

2022-11-20
Python Padx:用Python快速打造自己的代码笔记

2023-05-12