zoukankan      html  css  js  c++  java
  • Python: sort,sorted,OrderedDict的用法

    python内置函数sorted排序用法 - 阿义的专栏 - 博客频道 - CSDN.NET

    python内置函数sorted排序用法

    分类: python 1700人阅读 评论(0) 收藏 举报

    Python: sort,sorted,OrderedDict的用法

    python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。

    sort函数和sorted函数唯一的不同是,sort是在容器内排序,sorted生成一个新的排好序的容器。

    对于一个简单的数组 L=[5,2,3,1,4].

    sort: L.sort()

    sorted(...)
        sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

    iterable:待排序的可迭代类型的容器;
    cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
    key:用列表元素的某个已命名的属性或函数(只有一个参数并且返回一个用于排序的值)作为关键字,有默认值,迭代集合中的一项;
    reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
    返回值:是一个经过排序的可迭代类型,与iterable一样。

    如果是一个多维的列表 L=[(‘b’,2),(‘a’,1),(‘c’,3),(‘d’,4)].

    有三种选择对这个多维列表进行排序

    • 利用cmp函数

    sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))

    L.sort(cmp=lambda x,y:cmp(x[1],y[1]))

    • 利用key

    sorted(L, key=lambda x:x[1]);

    L.sort(key=lambda x:x[1]);

    • 反序

    以上几种排序均可加上参数reverse.

    例如 sorted(reverse=True), L.sort(reverse=True). 或者改成False

    OrderedDict是collections中的一个包,能够记录字典元素插入的顺序,常常和排序函数一起使用来生成一个排序的字典。

    比如,比如一个无序的字典

    d = {‘banana’:3,’apple’:4,’pear’:1,’orange’:2}

    通过排序来生成一个有序的字典,有以下几种方式

    collections.OrderedDict(sorted(d.items(),key = lambda t:t[0]))

    或者

    collections.OrderedDict(sorted(d.items(),key = lambda t:t[1]))

    或者

    collections.OrderedDict(sorted(d.items(),key = lambda t:len(t[0])))

  • 相关阅读:
    1062 Talent and Virtue (25 分)
    1083 List Grades (25 分)
    1149 Dangerous Goods Packaging (25 分)
    1121 Damn Single (25 分)
    1120 Friend Numbers (20 分)
    1084 Broken Keyboard (20 分)
    1092 To Buy or Not to Buy (20 分)
    数组与链表
    二叉树
    时间复杂度与空间复杂度
  • 原文地址:https://www.cnblogs.com/lexus/p/2768644.html
Copyright © 2011-2022 走看看