Python 使用列表的sort()进行多级排序实例演示,list的sort()排序方法使用详解,python3中sort()的cmp自定义排序方法,sort()的逆序、倒叙排序方法

简介: Python 使用列表的sort()进行多级排序实例演示,list的sort()排序方法使用详解,python3中sort()的cmp自定义排序方法,sort()的逆序、倒叙排序方法

   

Python 列表 sort 排序方法使用详解

第一章:常规功能

① sort() 的默认排序

下面是我打印一张图片的各个点的 RGB 颜色并进行默认排序。

# -*- coding:utf-8 -*-
from PIL import Image
pic_path = "./pic/a001.png"
img = Image.open(pic_path)
img = img.convert('RGB')   # 修改颜色通道为RGB
x, y = img.size   # 获得长和宽
d = []
# 设置每个像素点颜色的透明度
for i in range(x):
    for k in range(y):
        color = img.getpixel((i, k))
        d.append(color)
# 默认排序第一列
d.sort()
for i in d:
    print(i)

可以看到,只有第一列进行排序了。

image.png

② sort() 的多级排序实例演示

通过 key 参数可以设定对哪一位进行排序。

# -*- coding:utf-8 -*-
from PIL import Image
pic_path = "./pic/a001.png"
img = Image.open(pic_path)
img = img.convert('RGB')   # 修改颜色通道为RGB
x, y = img.size   # 获得长和宽
d = []
# 设置每个像素点颜色的透明度
for i in range(x):
    for k in range(y):
        color = img.getpixel((i, k))
        d.append(color)
# 获取元素第二列
def get_col_two(elem):
    return elem[1];
# 获取元素第三列
def get_col_three(elem):
    return elem[2];
# 默认排序第一列
d.sort()
# 排序第二列
d.sort(key=get_col_two)
# 排序第三列
d.sort(key=get_col_three)
for i in d:
    print(i)

在元素一排序的基础上再进行元素二的排序,然后再进行元素三的排序。

排序后效果图:

image.png

③ sort() 的逆序、倒叙排序

还有一个参数 reserse 这个是决定正序和逆序的,值为 True 则为逆序排序。

# 获取元素第二列
def get_col_two(elem):
    return elem[1];
# 获取元素第三列
def get_col_three(elem):
    return elem[2];
# 默认排序第一列
d.sort(reverse=True)
# 排序第二列
d.sort(key=get_col_two, reverse=True)
# 排序第三列
d.sort(key=get_col_three, reverse=True)

效果图如下:

image.png

④ sort() 方法的源码

源码如下:

Help on built-in function sort:
sort(*, key=None, reverse=False) method of builtins.list instance
    Sort the list in ascending order and return None.
    The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
    order of two equal elements is maintained).
    If a key function is given, apply it once to each list item and sort them,
    ascending or descending, according to their function values.
    The reverse flag can be set to sort in descending order.
None

第二章:扩展功能

① sort() 的 cmp 自定义排序方法

python2 中有 cmp 参数,python3 中已经给取消了,如果使用会报 TypeError: 'cmp' is an invalid keyword argument for sort() 的错误。

python3 的使用方法如下:

y[1]-x[1] 指的是用第二列进行逆序排序。

from functools import cmp_to_key
def custom_sort(x, y):
    return y[1]-x[1]
# 调用cmp排序
d.sort(key=cmp_to_key(custom_sort))

效果图如下:

image.png

② sort() 的 cmp 引用 lambda 函数实现自定义排序

引用 lambda 函数进行第三列逆序排序。

# 引用lambda函数进行cmp排序
d.sort(key=cmp_to_key(lambda x,y : y[2]-x[2]))

效果图如下:

image.png

喜欢的点个赞❤吧!


目录
相关文章
|
14天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
29 9
|
22天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
48 14
|
24天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
34 10
|
18天前
|
Java 机器人 程序员
从入门到精通:五种 List 遍历方法对比与实战指南
小米是一位热爱分享技术的程序员,本文详细介绍了 Java 中遍历 List 的五种方式:经典 for 循环、增强 for 循环、Iterator 和 ListIterator、Stream API 以及 forEach 方法。每种方式都有其适用场景和优缺点,例如 for 循环适合频繁访问索引,增强 for 循环和 forEach 方法代码简洁,Stream API 适合大数据量操作,ListIterator 支持双向遍历。文章通过生动的小故事和代码示例,帮助读者更好地理解和选择合适的遍历方式。
41 2
|
2月前
|
索引 Python
List(列表)
List(列表)。
53 4
|
2月前
|
JavaScript 数据管理 虚拟化
ArkTS List组件基础:掌握列表渲染与动态数据管理
在HarmonyOS应用开发中,ArkTS的List组件是构建动态列表视图的核心。本文深入探讨了List组件的基础,包括数据展示、性能优化和用户交互,以及如何在实际开发中应用这些知识,提升开发效率和应用性能。通过定义数据源、渲染列表项和动态数据管理,结合虚拟化列表和条件渲染等技术,帮助开发者构建高效、响应式的用户界面。
219 2
|
3月前
|
NoSQL 关系型数据库 MySQL
Redis 列表(List)
10月更文挑战第16天
44 2
|
Python
ZZULIOJ-1060,逆序数字(Python)
ZZULIOJ-1060,逆序数字(Python)
|
29天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
27天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。