python中sort()函数用法详解

目录
  • 1.函数sort()是对列表就地排序
  • 2.函数sort()修改序列,不返回任何值
  • 3.sorted()函数会返回一个排序列表,不改变原有序列
  • 4.函数sort()是升序排序,如何降序排序,需要用到函数reverse()
  • 5.函数sort()排序的高级用法
    • (1) key参数
    • (2) reverse参数
  • 补充:python中sort的用法——对列表中的元素按关键字排序
  • 总结

1.函数sort()是对列表就地排序

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> x.sort()
>>> print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2.函数sort()修改序列,不返回任何值

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> y=x.sort()
>>> print(y)
None
>>> print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

3.sorted()函数会返回一个排序列表,不改变原有序列

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> y=sorted(x)
>>> print(y)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(x)
[8, 9, 0, 7, 4, 5, 1, 2, 3, 6]

4.函数sort()是升序排序,如何降序排序,需要用到函数reverse()

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> x.sort()
>>> x.reverse()
>>> print(x)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

5.函数sort()排序的高级用法

方法sort()可以接受两个参数sort(key,reverse)

(1) key参数

key接受的是一个只有一个形参的函数

key接受的函数返回值,表示此元素的权值,sort将按照权值大小进行排序

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> def size(a):
>>>     x=10-int(a)
>>>     return x
>>> x.sort(key=size)
>>> print(x)

[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

(2) reverse参数

reverse接受的是一个bool类型的值 (Ture or False),表示是否颠倒排列顺序,一般默认的是False,注意第一个字母是大写的

>>> x=[8,9,0,7,4,5,1,2,3,6]
>>> x.sort(reverse=True)
>>> print(x)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> x.sort(reverse=False)
>>> print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 

补充:python中sort的用法——对列表中的元素按关键字排序

在python中,sort是列表排序的一种方法,调用方式为list.sort(),这样会改变原来列表的值。

sort(key, reverse)方法有key和reverse两种参数,其中key表示的是排序的关键字,reverse表示的是排序的方式(reverse=False表示升序和reverse=True表示降序)

sort()方法默认是升序排序,即默认reverse=False。

下面主要写一下如何用sort根据关键字排序:

对于一个列表,其中的元素也是列表,要根据元素中的值进行排序,直接看代码:

例子一:

l = [[1,2,3],[2,2,1],[2,1,3]]

l.sort(key = lambda x: (x[0],-x[1]))
'''
其中key表示按第几个关键字排序,lambda x:后()中的元素表示了关键字的优先级
第一位表示最高的优先级,第二位次之。。。
其中下x[0]表示按第一个关键词的升序排列,-x[1]表示按第二个关键词的降序排列。
'''
print(l)
#输出:[[1, 2, 3], [2, 2, 1], [2, 1, 3]]

例子二:

l = [[1,2,2],[2,2,1],[2,1,3]]

l.sort(key = lambda x: (-x[2],x[1]))
#表示按第三个元素的降序排列,然后再根据第二个元素的升序排
print(l)
#输出:[[2, 1, 3], [1, 2, 2], [2, 2, 1]]

总结

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

(0)

相关推荐

  • 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中argsort()函数的实例用法

    由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在python环境下进行了测试,大概了解了其相关的用处,为了怕自己后面又忘了,就写下来权当加深理解了.(ps:我也是python小白,理解可能比较浅显) 1.先定义一个array数据 import numpy as np x=np.array([1,4,3,-1,6,9]) 2.现在我们可以看看argsort()函数的具体功能是什么: x.argsort

  • 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()函数用法详解

    目录 1.函数sort()是对列表就地排序 2.函数sort()修改序列,不返回任何值 3.sorted()函数会返回一个排序列表,不改变原有序列 4.函数sort()是升序排序,如何降序排序,需要用到函数reverse() 5.函数sort()排序的高级用法 (1) key参数 (2) reverse参数 补充:python中sort的用法——对列表中的元素按关键字排序 总结 1.函数sort()是对列表就地排序 >>> x=[8,9,0,7,4,5,1,2,3,6] >>

  • python中getopt()函数用法详解

    目录 一.函数用法 二.示例 通过getopt模块中的getopt( )方法,我们可以获取和解析命令行传入的参数 一.函数用法 getopt(args, shortopts, longopts=[ ]) args:固定写法sys.argv[1:] shortopts:短参 字符串类型,限制命令行可传入的短参名称(命令行可不传参,如果传参,必须是指定的参数名,否则会报错) 参数名必须为单字符,前面使用单短横线(-) 命令行写法: -a 不带参数值形式 -b test_b 带参数值形式(中间空格可省

  • Python的Lambda函数用法详解

    在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 1.为什么要用lambda函数? 先举一个例子:将一个列表里的每个元素都平方. 先用def来定义函数,代码如下 def sq(x): return x*x map(sq,[y for y in range(10)]) 再用lambda函数来编写代码 map(lambda x: x*x,[y for y in r

  • python中yield的用法详解——最简单,最清晰的解释

    首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂的,我就想问没有有考虑过读者的感受. 接下来是正题: 首先,如果你还没有对yield有个初步分认识,那么你先把yield看做"return",这个是直观的,它首先是个return,普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了.看做return之后再把它

  • Python中itertools的用法详解

    iterator 循环器(iterator)是对象的容器,包含有多个对象.通过调用循环器的next()方法 (next()方法,在Python 3.x中),循环器将依次返回一个对象.直到所有的对象遍历穷尽,循环器将举出StopIteration错误. 在for i in iterator结构中,循环器每次返回的对象将赋予给i,直到循环结束.使用iter()内置函数,我们可以将诸如表.字典等容器变为循环器.比如 for i in iter([2, 4, 5, 6]): print i 标准库中的i

  • python中yield的用法详解

    首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂的,我就想问没有有考虑过读者的感受. 接下来是正题: 首先,如果你还没有对yield有个初步分认识,那么你先把yield看做"return",这个是直观的,它首先是个return,普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了.看做return之后再把它

  • Python中re.findall()用法详解

    在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.本文重点给大家介绍python中正则表达式 re.findall 用法 re.findall():函数返回包含所有匹配项的列表.返回string中所有与pattern相匹配的全部字串,返回形式为数组. 示例代码1:[打印所有的匹配项] import re s = "Long live the people's Republic of China" ret = re.findall('h', s) print(r

  • JavaScript中eval()函数用法详解

    eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行. 如果参数是一个表达式,eval() 函数将执行表达式.如果参数是Javascript语句,eval()将执行 Javascript 语句. 语法 复制代码 代码如下: eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. eval()函数用法详解: 此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eva

  • 对Python中的@classmethod用法详解

    在Python面向对象编程中的类构建中,有时候会遇到@classmethod的用法. 总感觉有这种特殊性说明的用法都是高级用法,在我这个层级的水平中一般是用不到的. 不过还是好奇去查了一下. 大致可以理解为:使用了@classmethod修饰的方法是类专属的,而且是可以通过类名进行调用的.为了能够展示其与一般方法的差异,写一段简单的代码如下: class DemoClass: @classmethod def classPrint(self): print("class method"

  • python中openpyxl库用法详解

    目录 一.读取数据 1.1 从工作簿中取得工作表 1.2 从表中取得单元格 1.3 从表中取得行和列 二.写入数据 2.1 创建Workbook对象来创建Excel文件并保存 2.2 案例分析一 :爬取数据并保存excel中 2.3 案例分析二: 操作单元格中内容样式并保存数据 2.4 案例分析三:将列表数据写入excel中 openpyxl模块是一个读写Excel 文档的Python库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档. openpyxl.load_wor

随机推荐