Pythonlist排序,python list按照某个字段排序

  Pythonlist排序,python list按照某个字段排序

  Python提供了两种排序列表的方法。

  1、使用list内建函数sort排序

  list.sort(key=None,reverse=False)例如:

  [57]:l=[27,47,3,42,19,9]

  In[58]:l.sort()

  [59]:l

  Out[59]:[3,9,19,27,42,47]相关推荐:《Python入门教程》

  上面的方法直接对L列表中的元素进行排序,sort()函数还提供了一个关键参数。这个参数的值是一个函数,只能有一个返回值,返回值用于比较。这种技术速度很快,因为key指定的函数将为每个元素准确地调用。

  In[53]:L=[(b ,6),( a ,1),( c ,3),( d ,4)]

  in[54]: l . sort(key=x : x[1])

  [56]:L

  Out [56] : [(a ,1),( c ,3),( d ,4),( b ,6)]上面这段话,结合这个例子,我是这样理解的:匿名函数lambda x3360x [1]等价于:

  deff(x):

  returnx[1]key参数接受列表L中每个元素的第二个参数,根据第二个参数的顺序确定整体顺序。也就是说,设置key参数后,key收到的值代表整体,排序标准就变成了对key收到的值进行排序。

  2、使用python内置函数sorted排序

  Sorted方法与sort方法非常相似,只是sorted不改变原始列表,而是返回一个有序列表。list.sort()改变了原来的列表。也就是list.sort()只能对列表进行排序,sorted()可以对其他数据结构进行排序。

  在[62]:l=[27,47,3,42,19,9]

  在[63]:分类(l)

  Out [63] : [3,9,19,27,42,47]排序的方法也可以使用key参数,用法相同。

  In[68]:data=[{name: 陈细洁, score:99},{name: 常春藤, score:80}]

  In[69]:sorted(data,key=lambdax:x[score])

  Out[69]:[{name:Ivy , score:80},{name: 陈细洁, score:99}]

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: