python字典排序实例详解

作者:久月 时间:2021-10-12 12:12:02 

本文实例分析了python字典排序的方法。分享给大家供大家参考。具体如下:

1、 准备知识:

在python里,字典dictionary是内置的数据类型,是个无序的存储结构,每一元素是key-value对:
如:dict = {'username':'password','database':'master'},其中'username'和'database'是key,而'password'和'master'是value,可以通过d[key]获得对应值value的引用,但是不能通过value得到key。

对于dictionnary,需知道以下几点注意事项:

a、 dictionary 的 key 是大小写敏感的;
b、 一个dictionary中不能有重复的 key;
c、 dictionary是无序的,没有元素顺序的概念,它们只是序偶的简单排列。

2、 字典排序实现:

前面已说明dictionary本身没有顺序概念,但是总是在某些时候,但是我们常常需要对字典进行排序,怎么做呢?下面告诉你:

方法1:最简单的方法,排列元素(key/value对),然后挑出值。字典的items方法,会返回一个元组的列表,其中每个元组都包含一对项目——键与对应的值。此时排序可以sort()方法。


def sortedDictValues1(adict):
 items = adict.items()
 items.sort()
 return [value for key, value in items]

方法2:使用排列键(key)的方式,挑出值,速度比方法1快。字典对象的keys()方法返回字典中所有键值组成的列表,次序是随机的。需要排序时只要对返回的键值列表使用sort()方法。


def sortedDictValues1(adict):
 keys = adict.keys()
 keys.sort()
 return [adict[key] for key in keys]

方法3:通过映射的方法去更有效的执行最后一步


def sortedDictValues1(adict):
 keys = adict.keys()
 keys.sort()
 return map(adict.get,keys)

方法4:对字典按键排序,用元组列表的形式返回,同时使用lambda函数来进行;
sorted(iterable[, cmp[, key[, reverse]]]
cmp和key一般使用lambda
如:


>>> d={"ok":1,"no":2}#对字典按键排序,用元组列表的形式返回
>>> sorted(d.items, key=lambda d:d[0])
[('no', 2), ('ok', 1)]

对字典按值排序,用元组列表的形式返回


>>> sorted(d.items, key=lambda d:d[1])
[('ok', 1), ('no', 2)]

对字典元素的排序虽然有好多种方法,这里也没有总结全,但如果对程序效率没有太高要求,选择喜欢的用就好。

希望本文所述对大家的Python程序设计有所帮助。

标签:python,字典,排序
0
投稿

猜你喜欢

  • Python代码实现http/https代理服务器的脚本

    2022-04-12 10:19:06
  • Python之csv文件从MySQL数据库导入导出的方法

    2023-08-09 04:45:10
  • asp脚本延时 自定义的delay函数

    2008-04-07 12:59:00
  • python处理json字符串(使用json.loads而不是eval())

    2023-06-13 11:50:39
  • DHTML 打造 Picture Spelling

    2013-08-22 17:01:53
  • 关于Python 常用获取元素 Driver 总结

    2022-12-24 05:03:28
  • GO语言操作Elasticsearch示例分享

    2023-09-03 03:38:00
  • Sql Server 2012 转换函数的比较(Cast、Convert和Parse)

    2012-08-21 10:21:40
  • python opencv对图像进行旋转且不裁剪图片的实现方法

    2023-03-12 02:40:09
  • Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解

    2023-11-24 09:28:09
  • 胜过语言的图形符号

    2009-05-06 12:43:00
  • ASP编程入门进阶(十):Global.asa文件

    2008-07-12 07:05:00
  • python绘图库Matplotlib的安装

    2023-09-26 19:32:22
  • Oracle 数据库操作类

    2023-07-24 06:58:42
  • Python实现的NN神经网络算法完整示例

    2023-10-06 04:30:41
  • Python实现根据日期获取当天凌晨时间戳的方法示例

    2023-08-04 14:16:46
  • 更改Python的pip install 默认安装依赖路径方法详解

    2023-01-05 20:55:28
  • 五种提高 SQL 性能的方法

    2008-05-16 10:40:00
  • 了解WEB页面工具语言XML(一)产生背景

    2008-09-05 17:18:00
  • PHP抓取及分析网页的方法详解

    2023-11-24 08:17:10
  • asp之家 网络编程 m.aspxhome.com