当前位置:  编程技术>python

Python中字典(dict)和列表(list)的排序方法实例

    来源: 互联网  发布时间:2014-10-08

    本文导语:  一、对列表(list)进行排序 推荐的排序方式是使用内建的sort()方法,速度最快而且属于稳定排序 代码如下:>>> a = [1,9,3,7,2,0,5]>>> a.sort()>>> print a[0, 1, 2, 3, 5, 7, 9]>>> a.sort(reverse=True)>>> print a[9, 7, 5, 3, 2, 1, 0]>>> b = ['e','a','be','ad','dab',...

一、对列表(list)进行排序

推荐的排序方式是使用内建的sort()方法,速度最快而且属于稳定排序

代码如下:

>>> a = [1,9,3,7,2,0,5]
>>> a.sort()
>>> print a
[0, 1, 2, 3, 5, 7, 9]
>>> a.sort(reverse=True)
>>> print a
[9, 7, 5, 3, 2, 1, 0]
>>> b = ['e','a','be','ad','dab','dbc']
>>> b.sort()
>>> print b
['a', 'ad', 'be', 'dab', 'dbc', 'e']

对列表的排序是遵循DSU(decorate-sort-undecorate)模式的,序列是安装条目的顺序进行比较的,对刚刚例子中的字符串来说,就是按照从左到右的顺序,逐个字符进行比较,一旦得出结果就停止比较。

二、对字典(dict)进行排序

其实字典(dict)是一个无序序列,谈不上排序,我们只能按照字典的键/值进行排序,然后让对应值/键也处于同样的顺序
任何对字典的排序问题,都要最终归结为对字典(dict)的键(key)或者值(value)组成的列表(list)的排序

1、按字典(dict)的键进行排序[1]

代码如下:

def sortedDictValues(adict,reverse=False):
 keys = adict.keys()
 keys.sort(reverse=reverse)
 return [adict[key] for key in keys]

如果需要同时返回键和值的话,之用将最后的return语句改为:
代码如下:
return [(key,adict[key]]) for key in keys]

还有一种书写简单的方法,就是使用内置的sorted()方法进行排序:
代码如下:

>>> d = {'c':1,'e':'5','b':7}
>>> sorted(d.items())
[('b', 7), ('c', 1), ('e', '5')]

不过性能会有些许的下降,如果很苛求性能,还是使用原生对list.sort()方法比较好

2、按字典(dict)的值进行排序[2]

代码如下:

def sorted_dict(container, keys, reverse):
 """返回 keys 的列表,根据container中对应的值排序"""
 aux = [ (container[k], k) for k in keys]
 aux.sort()
 if reverse: aux.reverse()
 return [k for v, k in aux]

同样可以用sorted()方法实现同样的功能:
代码如下:
sorted(d.items(), key=lambda d:d[1], reverse=True)

三、结语

通过以上代码的分析,大致总结处以下几条原则:
* 对字典的排序,最终都要归结为对字典的键或者值组成的列表的排序
* 对列表的排序,优先使用内置的list.sort()方法


    
 
 

您可能感兴趣的文章:

  • Python函数默认参数和字典参数及可变参数(带星号参数)
  • python 将字符串转换成字典dict
  • python内置映射类型(mapping type):dict哈希字典遍历方式及其它用法举例
  • Python中实现字符串类型与字典类型相互转换的方法
  • python字典多条件排序方法实例
  • python3.0 字典key排序
  • python中将字典转换成其json字符串
  • Python中使用item()方法遍历字典的例子
  • python实现随机密码字典生成器示例
  • python解决字典中的值是列表问题的方法
  • python 字典(dict)遍历的四种方法性能测试报告
  • python用字典统计单词或汉字词个数示例
  • Python查询Mysql时返回字典结构的代码
  • Python中让MySQL查询结果返回字典类型的方法
  • Python 字典(Dictionary)操作详解
  • python进阶教程之词典、字典、dict
  • python学习笔记:字典的使用示例详解
  • python基础教程之字典操作详解
  • Python Trie树实现字典排序
  • python创建和使用字典实例详解
  • python两种遍历字典(dict)的方法比较
  • Python namedtuple(命名元组)使用实例
  • python实现的重启关机程序实例
  • Python 3 Tkinter教程之事件Event绑定处理代码实例
  • python调用短信猫控件实现发短信功能实例
  • Python文件操作类操作实例详解
  • python 基础学习第二弹 类属性和实例属性
  • Python实现冒泡,插入,选择排序简单实例
  • Python 时间处理datetime实例
  • Python实现类继承实例
  • Python continue语句用法实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • python字符串排序方法
  • python 算法 排序实现快速排序
  • python 实现插入排序算法
  • python冒泡排序算法的实现代码
  • python 快速排序代码
  • python实现排序算法
  • python插入排序算法的实现代码
  • Python学习笔记_数据排序方法
  • python选择排序算法的实现代码
  • python算法学习之桶排序算法实例(分块排序)
  • python快速排序代码实例
  • python计数排序和基数排序算法实例
  • python 实现归并排序算法
  • python 实现堆排序算法代码
  • python中合并两个文本文件并按照姓名首字母排序的例子
  • python算法学习之基数排序实例
  • python算法学习之计数排序实例
  • Python对两个有序列表进行合并和排序的例子
  • Python实现的几个常用排序算法实例
  • python实现的各种排序算法代码
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 让python同时兼容python2和python3的8个技巧分享
  • Python不使用print而直接输出二进制字符串
  • 使用setup.py安装python包和卸载python包的方法
  • Python中实现json字符串和dict类型的互转
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python异常信息堆栈输出到日志文件
  • python读取csv文件示例(python操作csv)
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • python基础教程之python消息摘要算法使用示例
  • Python namedtuple对象json序列化/反序列化及对象恢复


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3