Python 列表 sort()函数使用详解

这篇具有很好参考价值的文章主要介绍了Python 列表 sort()函数使用详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》

sort() 可以对列表进行「排序」

语法

list.sort( key, reverse )

参数

  • key :(可选)指定排序规则
  • reverse :(可选)升序降序

返回值

  • 返回None,同时将原列表排序。也就是没有返回值

案例:将列表中的元素排序

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

输出:

[1, 2, 3, 5]

1、升序降序

reverse 参数控制排序的「升序」「降序」,True表示降序、False表示升序;默认升序reverse=False

list1 = [1, 3, 2, 5]
list1.sort(reverse=True)
print(list1)
list1.sort(reverse=False)
print(list1)
list1.sort()
print(list1)

输出:

[5, 3, 2, 1]
[1, 2, 3, 5]
[1, 2, 3, 5]

2、sort()和sorted()的区别

接收 sort() 的返回值,可以发现是None

list1 = [1, 3, 2, 5]
list2 = list1.sort()
print(list2)

输出:

None

打印一下排序前、后的「内存地址」,可以发现地址没有改变

list1 = [1, 3, 2, 5]
print(id(list1))
list1.sort()
print(id(list1))

输出:

2361470487744
2361470487744

sort() 的设计思想就是「修改」原列表,而不是返回新的列表;
它不会创建新的列表,从而节省「效率」
当然,这也意味着原列表被修改了,使用时要留意这一点;
sorted() sort() 的扩展函数,可以对列表的元素排序,同时不会修改原列表。

list1 = [1, 3, 2, 5]
list2 = sorted(list1)
print(list1)
print(list2)

输出:

[1, 3, 2, 5]
[1, 2, 3, 5]

从结果可以看到, sorted() 创建了新的列表,用来保存排序后的列表。


3、切片排序

将原列表「切片」复制给新列表,再对新列表排序,同样可以实现排序且不改变原列表。

list1 = [1, 3, 2, 5]
list2 = list1[:]
list2.sort()
print(list1)
print(list2)

输出:

[1, 3, 2, 5]
[1, 2, 3, 5]

直接「赋值」的方式是不行的,因为赋值的话,两个列表会指向同一个内存地址,原列表会同步变化。

list1 = [1, 3, 2, 5]
list2 = list1
list2.sort()
print(list1)
print(list2)

输出:

[1, 2, 3, 5]
[1, 2, 3, 5]

4、指定排序规则

key 参数可以指定排序「规则」

4.1、按字符串长度排序

对于元素全是字符串的「列表」,可以按照字符串的「长度」来排序

list1 = ['aaaaa', 'aa', 'aaaa', 'a']
list1.sort(key=len)
print(list1)

输出:

['a', 'aa', 'aaaa', 'aaaaa']

本质上是利用字符串的 len() 函数计算长度,再排序,如果遇到 int 这列没有 len() 函数的元素,就会报错 TypeError: object of type ‘int’ has no len()。

Python 列表 sort()函数使用详解,Python,python,人工智能,网络安全,机器学习


4.2、按第二个字符排序

对于元素全是字符串的列表,可以按照元素的第几个「字符」排序。

list1 = ['cb', 'fa', 'zd', 'ec']
list1.sort(key=lambda x: x[1])
print(list1)

输出:

['fa', 'cb', 'ec', 'zd']

需要注意的是,所有元素的字符长度都要够数,比如元素只有1个字符,却按照第2个字符排序,函数找不到第2个字符,肯定会报错 IndexError: string index out of range

Python 列表 sort()函数使用详解,Python,python,人工智能,网络安全,机器学习


4.3、查找第n大的元素

先降序,再按照「索引」取值,就能获取列表中第一大的值或第二大的值等。

list1 = [4, 3, 9, 6, 1]
list1.sort(reverse=True)
print('最大的元素:', list1[0])
print('第二大的元素:', list1[1])

输出:

最大的元素: 9
第二大的元素: 6

5、其他类型排序

sort() 只能对列表排序,而 sorted() 能对可迭代对象排序;所以,字符串、元组、字典等类型想排序,可以用 sorted()

str1 = "312"
print(sorted(str1))

tuple1 = (5, 1, 3)
print(sorted(tuple1))

dict1 = {"key1": 1, "key2": 2}
print(sorted(dict1))

输出:

['1', '2', '3']
[1, 3, 5]
['key1', 'key2']

从输出结果可以发现,字符串、元组、字典类型排序后,返回的是列表类型;并且字典只对键排序,不对值排序。文章来源地址https://www.toymoban.com/news/detail-647706.html

到了这里,关于Python 列表 sort()函数使用详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 列表 reverse()函数使用详解

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 小白零基础《Python入门到精通》 reverse() 可以 「反转」 列表中的函数 语法 返回值 None ,没有返回值,会修改列表,反转元素顺序。 实例:反

    2024年02月13日
    浏览(26)
  • Python列表append()函数使用详解

    在Python中,列表是一种可变序列类型,可以用来存储多个元素。列表的append()函数是用于在列表末尾添加新元素的内置方法。本文将详细介绍Python列表的append()函数及其使用方法。 一、append()函数的基本语法 append()函数的语法非常简单,只需要在列表对象后面加上要添加的元素

    2024年01月22日
    浏览(35)
  • Python的sort()与sorted()函数详解

    目录 sort()函数 sorted()函数 key参数 区别 sort() 方法:该方法用于原地对列表进行排序,即直接在原始列表上进行排序操作,并不返回一个新的列表。 sorted() 函数:该函数对可迭代对象进行排序,并返回一个新的已排序的列表。原始列表不会被修改。 对字符串进行排序时

    2024年02月09日
    浏览(25)
  • Python基础知识:整理15 列表的sort方法

    之前我们学习过 sorted() 方法,可以对列表、元组、集合及字典进行排序                                                                                      但是上述的方法对于嵌套的数据就不好实现排序了,sort()方法便可以登场了!

    2024年01月19日
    浏览(42)
  • python的sort函数与sorted函数排序

    1. sort 函数 sort 函数为 python 内置的列表排序高阶函数 , 所谓高阶函数,也就是参数为函数或返回值为函数。 先看个简单的例子: 可以发现排序后,改变了原列表的顺序。而且 sort() 函数没有返回值,或者说返回值是 None 。再看 sort 函数的语法: sort 函数的语法是: list.sort

    2024年02月11日
    浏览(27)
  • python list.sort方法和内置函数sorted

    list.sort 方法会就地排序列表,也就是说不会把原列表复制一份。这也是这个方法的返回值是 None 的原因,提醒你本方法不会新建一个列表。在这种情况下返回 None 其实是Python 的一个惯例:如果一个函数或者方法对对象进行的是就地改动,那它就应该返回None,好让调用者知道

    2024年01月18日
    浏览(30)
  • python中sorted()函数解析

    sorted() 函数对所有可迭代的对象进行排序操作。 sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础

    2024年02月03日
    浏览(28)
  • 【Python从入门到人工智能】14个必会的Python内置函数(6)——打印输出 (详细语法参考+参数说明+具体示例) | 详解Python中的打印输出!附综合案例!

      你有不伤别人的教养,却缺少一种不被别人伤害的气场,若没有人护你周全,就请你以后善良中带点锋芒,为自己保驾护航。   🎯作者主页: 追光者♂🔥          🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌟[2] 2022年度博客之星人工智能领域TOP4🌟   🏅[

    2024年02月15日
    浏览(45)
  • Python基础之sorted()函数用法

    本篇是关于sorted()函数的一些基本用法,如有不足缺陷欢迎补充指正。 1、简单的排序 sorted函数可以对可迭代类型的容器内的数据进行排序 2、进阶使用 sorted(L,key=···) 其中key用来接收一个自定义的排序规则 3、选择升序还是降序排列方式 其中sorted函数是默认升序排序,

    2024年02月11日
    浏览(35)
  • 【深度学习】 Python 和 NumPy 系列教程(三):Python容器:1、列表List详解(初始化、索引、切片、更新、删除、常用函数、拆包、遍历)

    目录 一、前言 二、实验环境 三、Python容器(Containers) 0、容器介绍 1、列表(List) 1. 初始化 a. 创建空列表 b. 使用现有元素初始化列表 c. 使用列表生成式 d. 复制列表 2. 索引和切片 a. 索引 b. 负数索引 c. 切片 3. 常用操作(更新、删除) a. 更新单个元素 b. 更新切片 c. 删除单

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包