我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value。可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value来排。到底有多少种方法可以实现对dictionary的内容进行排序输出呢?下面摘取了 一些精彩的解决办法。

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

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

1 按照Key值排序

#最简单的方法,这个是按照key值排序:

def sortedDictValues1(adict):

items = adict.items()

items.sort()

return [value for key, value in items]

#又一个按照key值排序,貌似比上一个速度要快点

def sortedDictValues2(adict):

keys = adict.keys()

keys.sort()

return [dict[key] for key in keys]

#还是按key值排序,据说更快。。。而且当key为tuple的时候照样适用

def sortedDictValues3(adict):

keys = adict.keys()

keys.sort()

return map(adict.get, keys)

#一行语句搞定:

[(k,di[k]) for k in sorted(di.keys())]

#用sorted函数的key参数(func)排序:

#按照key进行排序

print sorted(dict1.items(), key=lambda d: d[0])

2 按照value值排序

#来一个根据value排序的,先把item的key和value交换位置放入一个list中,再根据list每个元素的第一个值,即原来的value值,

排序:

def sort_by_value(d):

items=d.items()

backitems=[[v[1],v[0]] for v in items]

backitems.sort()

return [ backitems[i][1] for i in range(0,len(backitems))]

#还是一行搞定:

[ v for v in sorted(di.values())]

#用lambda表达式来排序,更灵活:

sorted(d.items(), lambda x, y: cmp(x[1], y[1])), 或反序:

sorted(d.items(), lambda x, y: cmp(x[1], y[1]), reverse=True)

#用sorted函数的key参数(func)排序: # 按照value进行排序

print sorted(dict1.items(), key=lambda d: d[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是无序的,没有元素顺序的概念,它们只是序偶的简单排列。

到此这篇关于如何对python的字典进行排序的文章就介绍到这了,更多相关python的字典进行排序方法内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

在python中怎么排序_怎么在python的字典中进行排序相关推荐

  1. python减小内存占用_如何将Python内存占用缩小20倍?

    当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...

  2. python set 排序_python set 排序_如何在Python中使用sorted()和sort()

    点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基  著 18财税3班 李潇潇    译 日期:2019年5月6日 一. 使用sorted() ...

  3. python字符串单个替换_如何用变量替换列表中的单个字符串?

    我正在编写一个脚本,用python为程序maya创建一个命名约定. 我将使用它来命名脚本创建的所有对象.在 例如,以左膝关节为例.脚本会传递这样的信息 ("bind"," ...

  4. python安全编码问题_浅谈Python中的编码问题

    对于Python的初学者来说,编码问题相当令人头疼.本文就根据我在学习过程中遇到的问题简单谈一下Python中的编码.首先简单介绍一下几种常见的编码. 一.几种常见的字符编码 ASCII码 ASCII ...

  5. python中变量类型在程序中可以改变_详细解析Python当中的数据类型和变量

    数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...

  6. python 数据流中的移动平均值_剑指Offer-41-数据流中的中位数

    题目 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值 ...

  7. python operator 多属性排序_快速入门Python必备的基础知识

    本文内容目录: 变量 注释 数据类型 条件判断 循环 函数 模块 数据结构 1.变量 在代码里,我们用变量来存放数据,利用"="为变量赋值. 变量的命名技巧:前半部分能代表数据的意 ...

  8. python语言中运算符号_详细介绍Python语言中的按位运算符

    <从问题到程序:用Python学编程和计算>--2.11 补充材料 本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第2章,第2.11节,作者:裘宗燕 ...

  9. values在python中的意思_相当于Python的values()字典方法的Javascript

    相当于Python的values()字典方法的Javascript 这个问题已经在这里有了答案: 如何获取Javascript对象的所有属性值(不知道键)?                       ...

  10. js数组按中文拼音排序_通俗易懂讲 Python 算法:快速排序

    原文:https://stackabuse.com/quicksort-in-python/ 作者:Marcus Sanatan 译者:老齐 欢迎在 bilibili  搜索 freeCodeCamp ...

最新文章

  1. Android Studio第三十四期 - git企业级应用命令
  2. 20 亿个数字在 4G 内存中如何去重排序:快来试一试 BitMap
  3. android studio 怎么做屏幕适配?
  4. python测试框架untest怎么循环执行_Python自动化测试-Unittest单元测试框架详解
  5. 异或方式找到一组数组中不重复的两个数(同班同学方法)
  6. OpenMP基本概念
  7. 2021牛客OI赛前集训营-方格计数【计数,dp】
  8. Apache Spark中的自定义日志
  9. Cairngorm初学者入门教程 第六节--Cairngorm中Command利用Delegate与Service连接
  10. 信息学奥赛一本通(1408:素数回文数的个数)
  11. 在rac集群上开启OEM
  12. c语言如何在坐标输出,tc 如何在指定坐标处 输出bmp图片??
  13. 【Go】高性能的简繁体转换
  14. 验证集精度高于训练集精度的原因分析
  15. 微型计算机常用的分区格式,教你分出整数的硬盘分区
  16. IDEA 导入 SSM项目
  17. 黑石五子棋软件测试自学,黑石(五子棋超强软件)的使用技巧
  18. Keras入门级MNIST手写数字识别超级详细教程
  19. Android 9.0 开启飞行模式
  20. 修改Window的hosts文件提示“该文件被其他程序占用,无法修改问题”解决方案

热门文章

  1. BZOJ1419 Red is good
  2. matlab abs()le8,《MATLAB_语言与数学运算》练习答案
  3. java response 输出word_java导出数据到word(一)
  4. python时间如何处理_python 时间处理
  5. 雾霾图像matlab,MATLAB图像处理:一分钟去除图片中的雾霾
  6. 不能使用泛型的形参创建对象_泛型就这么简单
  7. Vue-计算属性与事件监听
  8. 计算机机房里面难闻的气味,新装中央空调气味刺鼻为什么?怎么办?-中央空调 异味 刚开...
  9. 国家开放大学英语和计算机考试答案,最新电大国家开放大学《人文英语》网络核心课形考网考作业试题及答案...
  10. 分区供水条件口诀_分区供水高频考点,收藏哦