首页 » 网站推广 » PHPksort和sort技巧_实用干货python列表排序sort和sorted的差异

PHPksort和sort技巧_实用干货python列表排序sort和sorted的差异

访客 2024-11-14 0

扫一扫用手机浏览

文章目录 [+]

sort()是列表类型的方法,只适用于列表;sorted()是内置函数,支持各种容器类型。
它们都可以排序,且用法类似,但sort()是在原地排序的,不会返回排序后的列表,而sorted()是返回新的排序列表。

1 >>> help(list.sort)2 Help on method_descriptor:34 sort(...)5 L.sort(key=None, reverse=False) -> None -- stable sort IN PLACE6 78 >>> help(sorted)9 Help on built-in function sorted in module builtins:1011 sorted(iterable, /, , key=None, reverse=False)12 Return a new list containing all items from the iterable in ascending order.1314 A custom key function can be supplied to customize the sort order, and the15 reverse flag can be set to request the result in descending order.

本文仅大略先容排序用法。

PHPksort和sort技巧_实用干货python列表排序sort和sorted的差异

例如列表L:

PHPksort和sort技巧_实用干货python列表排序sort和sorted的差异
(图片来自网络侵删)

>>> L = ['python', 'shell', 'Perl', 'Go', 'PHP']

利用sort()和sorted()排序L,把稳sort()是对L直接原地排序的,不是通过返回值来表示排序结果的,以是无需赋值给变量。
而sorted()则是返回排序后的新结果,须要赋值给变量才能保存排序结果。

1 >>> sorted(L)2 ['Go', 'PHP', 'Perl', 'python', 'shell']3 >>> L4 ['python', 'shell', 'Perl', 'Go', 'PHP']5 6 7 >>> L.sort()8 >>> L9 ['Go', 'PHP', 'Perl', 'python', 'shell']

不难创造,sort()和sorted()默认都是升序排序的(A<B<...<Z<a<b<...<z)。
它们都可以指定参数reverse=True来表示顺序反转,也便是默认得到降序:

1 >>> L.sort(reverse=True)2 >>> L3 ['shell', 'python', 'Perl', 'PHP', 'Go']

在python 3.x中,sort()和sorted()不许可对包含不同数据类型的列表进行排序。
也便是说,如果列表中既有数值,又有字符串,则排序操作报错。

sort()和sorted()的另一个参数是key,它默认为key=None,该参数用来指定自定义的排序函数,从而实现自己须要的排序规则。

例如,上面的列表不再按照默认的字符顺序排序,而是想要按照字符串的长度进行排序。
以是,自定义这个排序函数:

1 >>> def sortByLen(s):2 ... return len(s)

然后通过指定key = sortByLen的参数办法调用sort()或sorted(),在此期间还可以指定reverse = True:

1 >>> L = ['shell', 'python', 'Perl', 'PHP', 'Go']2 3 >>> sorted(L,key=sortByLen)4 ['Go', 'PHP', 'Perl', 'shell', 'python']56 >>> L.sort(key=sortByLen,reverse=True)7 >>> L8 ['python', 'shell', 'Perl', 'PHP', 'Go']

再例如,按照列表每个元素的第二个字符来排序。

1 def f(e):2 return e[1]3 4 L = ['shell', 'python', 'Perl', 'PHP', 'Go']56 sorted(L, key=f)7 L.sort(key=f)

更多的排序办法,比如指定两个排序依据,一个按字符串长度升序排,长度相同的按第2个字符降序排。
用法实在很大略,不过稍占篇幅,以是本文不阐明了。

以为文章还可以的话不妨点个赞,有任何见地或者意见欢迎大家评论!

我是一名python开拓工程师,整理了一套python的学习资料,如果你对编程感兴趣,关注我并在后台私信小编:“08”即可免费领取资料!
希望对你能有所帮助!

标签:

相关文章

今日头条算法引领个化信息时代的变革

信息爆炸时代已经到来。每个人都是信息的接收者和传播者。面对海量的信息,人们往往感到无所适从。为了解决这一问题,各大互联网公司纷纷推...

网站推广 2025-01-31 阅读1 评论0

今日头条算法信息推荐的秘密武器

信息爆炸的时代已经来临。人们每天都会接触到大量的信息,而如何从这些信息中筛选出有价值的内容,成为了亟待解决的问题。今日头条算法作为...

网站推广 2025-01-31 阅读1 评论0

今日头条算法精准推荐背后的技术奥秘

信息爆炸的时代已经来临。我们每天都要面对海量的信息,如何从这些信息中筛选出自己感兴趣的内容,成为了每个人都关心的问题。今日头条作为...

网站推广 2025-01-31 阅读1 评论0