python 15:列表排序

作者: 金石明镜 | 来源:发表于2019-11-15 20:45 被阅读0次

列表排序使用方法sort()。

可以指定排序键和是否倒序的参数。默认按原值排序,且为正序。

一、按原值排序

>>> s=[1,2,-1,-3,7,-9]

>>> s

[1, 2, -1, -3, 7, -9]

>>> s.sort()

>>> s

[-9, -3, -1, 1, 2, 7]

>>> s.sort(reverse=True)

>>> s

[7, 2, 1, -1, -3, -9]

二、指定排序键对列表排序

排序键是一个函数。

下面按绝对值排序。

先导入math模块,以便使用绝对值函数。

>>> import math

>>> s.sort(key=lambda x:abs(x))

>>> s

[1, -1, 2, -3, 7, -9]

>>> s.sort(key=lambda x:abs(x), reverse=True)

>>> s

[-9, 7, -3, 2, 1, -1]

下面的例子中,列表的元素是字典。

>>> li=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]

>>> li=sorted(li, key=lambda x:x["age"])

>>> print(li)

[{'age': 10, 'name': 'ghi'}, {'age': 20, 'name': 'def'}, {'age': 25, 'name': 'abc'}]

>>> li=sorted(li, key=lambda x:x['name'])

>>> li

[{'age': 25, 'name': 'abc'}, {'age': 20, 'name': 'def'}, {'age': 10, 'name': 'ghi'}]

三、对字典排序

字典是不能直接排序的,因为只有列表可以排序,因此,只能先转化为列表。

>>>d={'beautiful': 10, 'wonderful': 12, 'love': 17}

>>>content=list(d.items())

>>> content

[('beautiful', 10), ('wonderful', 12), ('love', 17)]

>>> content.sort(key=lambda x:x[0])

>>> content

[('beautiful', 10), ('love', 17), ('wonderful', 12)]

>>> content.sort(key=lambda x:x[1])

>>> content

[('beautiful', 10), ('wonderful', 12), ('love', 17)]

四、排序键为自定义函数

前面举出的排序键为lambda函数。也可以用自定义函数。

先建立一个函数,并运行:

import math

def func(x):

  return x[1]%3

再执行下面的命令:

>>>d={'beautiful': 10, 'wonderful': 12, 'love': 17}

>>>content=list(d.items())

>>> content.sort(key=func)

>>> content

[('wonderful', 12), ('beautiful', 10), ('love', 17)]

>>> content.sort(key=func,reverse=True)

>>> content

[('love', 17), ('beautiful', 10), ('wonderful', 12)]

相关文章

  • python 15:列表排序

    列表排序使用方法sort()。 可以指定排序键和是否倒序的参数。默认按原值排序,且为正序。 一、按原值排序 >>>...

  • python set集合,排序输出

    python set集合,排序输出 列表-->集合-->列表-->list sort() == 集合-->列表--...

  • Python 日常使用记录

    sorted排序 python的排序函数sort,sorted在列表排序和字典排序中的应用详解和举例,python...

  • python 常用操作记录

    python 列表及字典(按key、按value排序) python dict按照key 排序:1、method ...

  • Python列表的排序和反转

    Python列表的排序和反转 Python的三种排序方式 开始演示之前,先定义两个列表,name_list和num...

  • Python列表的排序和反转怎么使用?

    Python列表的排序和反转 Python的三种排序方式 开始演示之前,先定义两个列表,name_list和num...

  • 列表,字典排序

    列表嵌套字典,根据字典某一key排序python sort、sorted高级排序技巧(key的使用)Python要...

  • 算法小结(二):列表排序1

    一、列表排序概述 列表排序就是将无序列表转变为有序列表,包括升序和降序两种,python内置函数为sort()。常...

  • python之理解排序

    python之理解排序 排序是以某种顺序从集合中存放元素的过程。例如,单词列表可以按字母顺序或按长度排序。城市列表...

  • Python之排序函数sort() 和 sorted()

    sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回Non...

网友评论

    本文标题:python 15:列表排序

    本文链接:https://www.haomeiwen.com/subject/inteictx.html