python中的 sorted()函数和sort()方法

目录
  • 1.sort()
  • 2.sorted()
  • 3.sorted()操作列表
  • 4.sorted()排序字典
    • ①参数key:使用lambda定义
    • ②参数key:使用itemgetter直接生成

1.sort()

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

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

调用sort()方法后,原列表被改变。

2.sorted()

再看sorted()函数,

sorted(iterable, key=None, reverse=False)

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

返回值是一个列表。

3.sorted()操作列表

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

使用sorted函数,不改变原列表。
sorted操作其他可迭代对象大致过程同上。

4.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的值。

到此这篇关于python中的 sorted()函数和sort()方法的文章就介绍到这了,更多相关python sorted()函数和sort()方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python排序函数sort()与sorted()的区别

    python 中sorted与sort有什么区别 sort(cmp=None, key=None, reverse=False) sorted(iterable, cmp=None, key=None, reverse=False) sort是容器的函数,用List的成员函数sort进行排序 sorted是Python的内建函数相同的参数,用built-in函数sorted进行排序 sorted(iterable,key=None,reverse=False),返回新的列表,对所有可迭代的对象均

  • 深入理解python中sort()与sorted()的区别

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列 一,最简单的排序 1.使用sort排序 my_list = [3, 5, 1, 4, 2] my_list.sort() print (my_list) #输出: [1, 2, 3, 4, 5] 使用sort()方法对list排序会修改list本身,不会返回新list. sort()不能对dict字典进行排序 2.使用sorted()排序 my_list = [

  • python中的 sorted()函数和sort()方法

    目录 1.sort() 2.sorted() 3.sorted()操作列表 4.sorted()排序字典 ①参数key:使用lambda定义 ②参数key:使用itemgetter直接生成 1.sort() 首先看sort()方法,sort方法只能对列表进行操作,而sorted可用于所有的可迭代对象. a = [1, 5, 3, 4, 2] a.sort() print(a) 调用sort()方法后,原列表被改变. 2.sorted() 再看sorted()函数, sorted(iterable

  • python中的 sorted()函数和sort()方法区别

    目录 1.sort() 2.sorted() 3.sorted()操作列表 4.sorted()排序字典 ①参数key:使用lambda定义 ②参数key:使用itemgetter直接生成 1.sort() 首先看sort()方法,sort方法只能对列表进行操作,而sorted可用于所有的可迭代对象. a = [1, 5, 3, 4, 2] a.sort() print(a) 调用sort()方法后,原列表被改变. 2.sorted() 再看sorted()函数, sorted(iterable

  • Python中利用sorted()函数排序的简单教程

    排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来.通常规定,对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1,这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序. Python内置的sorted()函数就可以对list进行排序:

  • 举例详解Python中的split()函数的使用方法

    函数:split() Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) os.path.split():按照路径将文件名和路径分割开 一.函数说明 1.split()函数 语法:str.split(str="",num=string.count(str))[n] 参数说明: str:   表示为分隔符,默认为空格,但是不能为空('').若字符串中没有分

  • python中numpy.empty()函数实例讲解

    在使用python编程的过程中,想要快速的创建ndarray数组,可以使用numpy.empty()函数.numpy.empty()函数所创建的数组内所有元素均为空,没有实际意义,所以它也是创建数组最快的方法.本文介绍python中numpy.empty()函数的使用方法. 1.numpy.empty()函数 这个函数可以创建一个没有任何具体值的ndarray数组,是创建数组最快的方法. 根据给定的维度和数值类型返回一个新的数组,其元素不进行初始化. 2.用法 import numpy as n

  • 在python中list作函数形参,防止被实参修改的实现方法

    0.摘要 我们将一个list传入函数后,函数内部对实参修改后,形参也会随之改变.本文将主要介绍这种错误的现象.原因和解决方法. 1.代码示例 def fun(inner_lst): inner_lst.pop() lst = [1,2,3,4,5,6,7] fun(lst) print(lst) fun(lst) print(lst) fun(lst) print(lst) fun(lst) print(lst) fun(lst) print(lst) 从运行结果上,可以看出, 虽然我们改变的是

  • python中字符串String及其常见操作指南(方法、函数)

    目录 下标与切片 常见方法 查找 替换 分割 大小写格式化 对齐格式化 清除空白字符 检查 补充:16个常用函数 总结 注意:对字符串的所有操作,原始数据(即原字符串)不变 !(字符串是不可变类型) 对原字符串操作会返回一个操作后的数据, 可以使用变量去接受数据 ----------------------------------------------------------------------------------------------------------------------

  • Python中使用Lambda函数的5种用法

    引言 Lambda 函数(也称为匿名函数)是函数式编程中的核心概念之一. 支持多编程范例的 Python 也提供了一种简单的方法来定义 lambda 函数. 用 Python 编写 lambda 函数的模板是: lambda arguments : expression 它包括三个部分: · Lambda 关键字 · 函数将接收的参数 · 结果为函数返回值的表达式 由于它的简单性,lambda 函数可以使我们的 Python 代码在某些使用场景中更加优雅.这篇文章将演示在 Python 中 la

  • 详解Python中的分组函数groupby和itertools)

    具体代码如下所示: from operator import itemgetter #itemgetter用来去dict中的key,省去了使用lambda函数 from itertools import groupby #itertool还包含有其他很多函数,比如将多个list联合起来.. d1={'name':'zhangsan','age':20,'country':'China'} d2={'name':'wangwu','age':19,'country':'USA'} d3={'nam

  • 解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题

    1. os.listdir()概述 os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表. 例如: dir ='F:/Home_01/img'#当前目录 filenames=os.listdir(dir)#filenames存储dir下的所有文件名. 注意:os.listdir()返回的文件名不一定是顺序的,也就是说结果是不固定的,如下图,则filenames[0]有可能为'22.jpg',而不是我们所希望的'11.jpg'. 解决办法: filenames=os.l

随机推荐