关闭

python sorted

126人阅读 评论(0) 收藏 举报
分类:
我们需要对List进行排序,Python提供了两个方法
对给定的List L进行排序,
方法1.用List的成员函数sort进行排序
方法2.用built-in函数sorted进行排序(从2.4开始)

--------------------------------sorted---------------------------------------
>>> help(sorted)
Help on built-in function sorted in module __builtin__:

sorted(...)
    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
---------------------------------sort----------------------------------------
>>> help(list.sort)
Help on method_descriptor:

sort(...)
    L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
    cmp(x, y) -> -1, 0, 1
-----------------------------------------------------------------------------

iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。
 
注;一般来说,cmp和key可以使用lambda表达式。

sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。

Sorting basic:

>>> print sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
>>> L = [5, 2, 3, 1, 4]
>>> L.sort()
>>> print L
[1, 2, 3, 4, 5]

Sorting  cmp:

>>>L = [('b',2),('a',1),('c',3),('d',4)]
>>>print sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

Sorting  keys:

>>>L = [('b',2),('a',1),('c',3),('d',4)]
>>>print sorted(L, key=lambda x:x[1]))
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

Sorting  reverse:

>>> print sorted([5, 2, 3, 1, 4], reverse=True)
[5, 4, 3, 2, 1]
>>> print sorted([5, 2, 3, 1, 4], reverse=False)
[1, 2, 3, 4, 5]

注:效率key>cmp(key比cmp快)


在Sorting Keys中:我们看到,此时排序过的L是仅仅按照第二个关键字来排的,如果我们想用第二个关键字
排过序后再用第一个关键字进行排序呢?
>>> L = [('d',2),('a',4),('b',3),('c',2)]
>>> print sorted(L, key=lambda x:(x[1],x[0]))
>>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]

以上环境python2.4
0
0
查看评论

python中sorted()函数的应用

1、sorted()函数的应用 sorted()函数可以接受一个参数 sorted()函数还可以接受一个key函数来实现自定义的排序。 sorted()还可以接受第三个参数:reverse=True,来实现反序排列 接受一个参数的例子如下: sorted([5,-3,1])——————...
  • u010412719
  • u010412719
  • 2015-07-10 10:16
  • 1002

Python的基本知识及sorted

1. 简介     sorted的派排序功能真强大,从前一直使用C++、Java以为其功能很强大了,但与Python一比,真的要差一些。 2. 函数定义      sorted(iterable, cmp=None, key=None, revers...
  • MyArrow
  • MyArrow
  • 2016-04-20 13:52
  • 8985

Python 中 sorted 的用法

sorted 排序方法主要是用在 list 和 dict 中。 sorted 介绍: 其中, iterable 是可迭代类型            cmp 是用于比较的函数,比较什么由key ...
  • lyc_yongcai
  • lyc_yongcai
  • 2017-06-18 14:09
  • 371

python中sort与sorted区别

我们需要对List进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序 方法2.用built-in函数sorted进行排序(从2.4开始) --------------------------------sorted-----...
  • u010255818
  • u010255818
  • 2016-06-06 10:01
  • 3719

88. Merge Sorted Array [easy] (Python)

题目链接https://leetcode.com/problems/merge-sorted-array/题目原文 Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted arra...
  • coder_orz
  • coder_orz
  • 2016-06-15 13:54
  • 2567

python 高阶函数之自定义排序

自定义排序函数本文参考慕课网廖学峰老师的视频教程整理而来。Python内置的 sorted()函数可对list进行排序:>>>sorted([36, 5, 12, 9, 21])[5, 9, 12, 21, 36]但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自...
  • adamlovejw
  • adamlovejw
  • 2015-07-30 17:27
  • 2388

Python的排序:关于sort()与sorted()

list.sort()list的一个方法,具有三个参数:cmp,key,reverse(Python3只有后两个) 一个list调用sort方法后,对该list进行排序,不保存原list - 参数解释: - cmp(仅支持Python2):比较函数,可以自定义,如cmp = lambda x...
  • qq_15714857
  • qq_15714857
  • 2016-01-19 22:14
  • 3270

python中sort和sorted函数

在学习python的过程中,感觉python中的排序相和c++中的泛型算法还是比较相似的,但相对于c++而言更加简单易用。 python中列表的内置函数sort()可以对列表中的元素进行排序,而全局性的sorted()函数则对所有可迭代的序列都是适用的。 1、内置函数sort() 原型:sort(f...
  • qq_29883591
  • qq_29883591
  • 2016-06-08 21:36
  • 3472

python sorted()函数cmp,key,reverse参数详解

点击打开链接 Python帮助文档中对sorted方法的讲解: sorted(iterable[,cmp,[,key[,reverse=True]]]) 作用:返回一个经过排序的列表。 第一个参数是一个iterable,返回值是一个对iterable中元素进行排序后的列表(list)。 ...
  • whw1874
  • whw1874
  • 2015-11-03 15:04
  • 5056

21. Merge Two Sorted Lists(python)

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. 题意:按顺序拼...
  • qq_28119401
  • qq_28119401
  • 2016-09-18 21:32
  • 636
    个人资料
    • 访问:818369次
    • 积分:11905
    • 等级:
    • 排名:第1497名
    • 原创:297篇
    • 转载:490篇
    • 译文:0篇
    • 评论:44条
    最新评论