python sorted()函数及sort()方法

简介: python sorted()函数及sort()方法

sort()

首先看sort()方法,sort方法只能对列表进行操作,而sorted可用于所有的可迭代对象。

a = [1, 5, 3, 4, 2]
a.sort()
print(a)

在这里插入图片描述
调用sort()方法后,原列表被改变。


sorted()

再看sorted()函数,
sorted(iterable, key=None, reverse=False)

  • iterable是一个可迭代对象
  • key为指定的排序标的,指定排列的是哪一个值。参数类型为 函数类型。(需要传入一个函数)
    如给dic_items里的键值对排序时,默认是按照键来排,可以设定此参数来按照Value排列。
  • reverse为排序方式,False为升序,True为降序

返回值是一个列表。

sorted()操作列表

a = [1, 5, 3, 4, 2]
print(sorted(a))
print(a)

在这里插入图片描述
使用sorted函数,不改变原列表。
sorted操作其他可迭代对象大致过程同上。

sorted()排序字典

使用sorted()排序字典,首先要将字典中的值放在一个可迭代对象中:
这里将dict1转化为dict1.items()后,再传入sorted()函数中即可。

关于参数key有两种常用写法,

①参数key:使用lambda定义

使用lambda定义一个获取x第二个值的函数,这里x指可迭代对象中的元素。

dict1 = {
    'a': 1, 'b': 4, 'c': 2, 'd': 3}
print(sorted(dict1.items(), key=lambda x: x[1], reverse=True))

在这里插入图片描述

②参数key:使用itemgetter直接生成

from operator import itemgetter
dict1 = {
    'a': 1, 'b': 4, 'c': 2, 'd': 3}
print(sorted(dict1.items(), key=itemgetter(1), reverse=True))

也可以达到一样的效果:
在这里插入图片描述
关于itemgetter()是个什么,itemgetter()是一个高阶函数,返回值是一个函数,itemgetter(1)等同于lambda x: x[1]。
单独对其进行调用就可以看出:

from operator import itemgetter
print(itemgetter(1)([1, 2, 3]))

在这里插入图片描述
如图,其获取了列表[1, 2, 3]索引为1的值。

目录
相关文章
|
19天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
123 67
|
13天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
40 18
|
5天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
34 8
|
9天前
|
安全
Python-打印99乘法表的两种方法
本文详细介绍了两种实现99乘法表的方法:使用`while`循环和`for`循环。每种方法都包括了步骤解析、代码演示及优缺点分析。文章旨在帮助编程初学者理解和掌握循环结构的应用,内容通俗易懂,适合编程新手阅读。博主表示欢迎读者反馈,共同进步。
|
14天前
|
Python
Python中的函数
Python中的函数
30 8
|
17天前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
83 5
|
21天前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####
|
4月前
|
SQL JSON C语言
Python中字符串的三种定义方法
Python中字符串的三种定义方法
122 2
|
6月前
|
Python
python之字符串定义、切片、连接、重复、遍历、字符串方法
python之字符串定义、切片、连接、重复、遍历、字符串方法
python之字符串定义、切片、连接、重复、遍历、字符串方法
28.从入门到精通:Python3 面向对象 面向对象技术简介 类定义 类对象 类的方法
28.从入门到精通:Python3 面向对象 面向对象技术简介 类定义 类对象 类的方法