pythonsorted函数用法_Python 内置函数sorted()在高级用法

对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比。在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的。

主要的区别在于,list.sort()是对已经存在的列表进行操作,进而可以改变进行操作的列表。而内建函数sorted返回的是一个新的list,而不是在原来的基础上进行的操作.

再来,让我们用Python自带的帮助函数help()看看对于sorted()是怎么定义的:

>>>help(sorted)

Help on built-in function sorted in module builtins:

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

Return a new list containing all items from the iterable in ascending order.

A custom key function can be supplied to customise the sort order, and the

reverse flag can be set to request the result in descending order.

要先说明的是, 本人用的Python版本为3.5, 所以会跟Python2的有变差。

由帮助可以看到,传进去一个可迭代的数据,返回一个新的列表,注意,是新的列表!来看看看实例吧:

>>>g=[1,4,6,8,9,3,5]

>>>sorted(g)

Out[30]: [1, 3, 4, 5, 6, 8, 9]

>>>sorted((1,4,8,9,3,6))

Out[33]: [1, 3, 4, 6, 8, 9]

>>>sorted('gafrtp')

Out[35]: ['a', 'f', 'g', 'p', 'r', 't']

由以上可以看到,只要是可迭代对象数据,都能够进行排序,生成一个排序后的列表。

如果想要排逆序呢?很简单,只要将可选参数reverse设置为True即可:

>>>sorted((1,4,8,9,3,6), reverse=True)

Out[36]: [9, 8, 6, 4, 3, 1]

高级用法

有时候,我们要处理的数据内的元素不是一维的,而是二维的甚至是多维的,那要怎么进行排序呢?这时候,sorted()函数内的key参数就派上用场了!从帮助信息上可以了解到,key参数可传入一个自定义函数。那么,该如何使用呢?让我们看看如下代码:

>>>l=[('a', 1), ('b', 2), ('c', 6), ('d', 4), ('e', 3)]

>>>sorted(l, key=lambda x:x[0])

Out[39]: [('a', 1), ('b', 2), ('c', 6), ('d', 4), ('e', 3)]

>>>sorted(l, key=lambda x:x[0], reverse=True)

Out[40]: [('e', 3), ('d', 4), ('c', 6), ('b', 2), ('a', 1)]

>>>sorted(l, key=lambda x:x[1])

Out[41]: [('a', 1), ('b', 2), ('e', 3), ('d', 4), ('c', 6)]

>>>sorted(l, key=lambda x:x[1], reverse=True)

Out[42]: [('c', 6), ('d', 4), ('e', 3), ('b', 2), ('a', 1)]

这里,列表里面的每一个元素都为二维元组,key参数传入了一个lambda函数表达式,其x就代表列表里的每一个元素,然后分别利用索引返回元素内的第一个和第二个元素,这就代表了sorted()函数利用哪一个元素进行排列。而reverse参数就如同上面讲的一样,起到逆排的作用。默认情况下,reverse参数为False。

当然,正如一开始讲到的那样,如果想要对列表直接进行排序操作,可以用成员方法sort()来做:

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

>>>l

Out[45]: [('a', 1), ('b', 2), ('e', 3), ('d', 4), ('c', 6)]

>>>l.sort(key=lambda x : x[1], reverse=True)

>>>l

Out[47]: [('c', 6), ('d', 4), ('e', 3), ('b', 2), ('a', 1)]

对于三维及以上的数据排排序,上述方法同样适用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的sorted函数是一个内置的排序函数,可以对可迭代对象进行排序。它的用法非常简单,只需要将需要排序的对象作为参数传递给sorted函数即可。例如,如果你有一个列表需要排序,可以使用以下代码: ```python my_list = [3, 1, 2, 5, 4] sorted_list = sorted(my_list) print(sorted_list) ``` 这将输出 `[1, 2, 3, 4, 5]`,即按照从小到大的顺序对my_list进行排序。 另外,sorted函数还可以接受一个关键字参数`key`,用于指定排序的依据。例如,如果你有一个包含字符串的列表,你可以通过指定`key`参数来按照字符串的长度进行排序: ```python my_list = ['apple', 'banana', 'cherry', 'date'] sorted_list = sorted(my_list, key=len) print(sorted_list) ``` 这将输出 `['date', 'apple', 'banana', 'cherry']`,即按照字符串的长度从小到大对my_list进行排序。 总之,Python中的sorted函数是一个非常方便的排序工具,可以用于对各种可迭代对象进行排序,并且还可以通过关键字参数`key`来指定排序的依据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python使用sorted函数对列表进行排序的方法](https://download.csdn.net/download/weixin_38552305/12878422)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Pythonsorted函数的使用](https://blog.csdn.net/wangxiao7474/article/details/78867759)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值