Python 字典排序

在python里,字典是内置的数据类型,是个无序的存储结构,每一个元素是key-value对:

有关key的解释:

sorted(L,key=by_name)中的key即by_name函数处理的是L这个列表
的每个元素,所以by_name(t)的参数t就是L中的一个元素,
比如说('Lili',75)。所以return t[0]返回的是这个元组的第一个元素,
即名字Lili
>>> d
{9: 'xinzhou', 3: 'chen', 5: 'wuhan', 1: 'yadan'} >>> ss=sorted(d.items(),key=lambda d:d[0])            #主要看这里
>>> ss
[(1, 'yadan'), (3, 'chen'), (5, 'wuhan'), (9, 'xinzhou')]
>>> d
{9: 'xinzhou', 3: 'chen', 5: 'wuhan', 1: 'yadan'} >>> sss=sorted(d.items(),key=lambda d:d[1])
>>> sss
[(3, 'chen'), (5, 'wuhan'), (9, 'xinzhou'), (1, 'yadan')]
>>> sss=sorted(d.items(),key=lambda d:d[1],reverse=True)    #主要看这里 >>> sss
[(1, 'yadan'), (9, 'xinzhou'), (5, 'wuhan'), (3, 'chen')]
>>> sss=sorted(d.items(),key=lambda d:d[1],reverse=False) >>> sss
[(3, 'chen'), (5, 'wuhan'), (9, 'xinzhou'), (1, 'yadan')]
dict1={'A': 9, 'C': 5, 'B': 1, 'E': 14, 'D': 3, 'G': 3, 'F': 3, 'I': 9, 'H': 7, 'J': 1, 'L': 2, 'O': 8, 'N': 3, 'P': 4, 'S': 10, 'R': 5, 'U': 1, 'T': 17, 'W': 1, 'V': 1}
#对字典按值排序,以元组的形式返回
print sorted(dict1.iteritems(),key=lambda dict1:dict1[1],reverse=True)
#对字典按键排序,以元组的形式返回
print sorted(dict1.iteritems(),key=lambda dict1:dict1[0],reverse=False)

参考下其他类型的排序:(估计python2)

>>> student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
>>> sorted(student_tuples, key=lambda student: student[2]) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

例如:

>>> a=[(5,"chen"),(3,"hang"),(7,"wang"),(4,"yadan")]
>>> a
[(5, 'chen'), (3, 'hang'), (7, 'wang'), (4, 'yadan')]
>>> aa=sorted(a,key=lambda a:a[0],reverse=False)
>>> aa
[(3, 'hang'), (4, 'yadan'), (5, 'chen'), (7, 'wang')]
>>> aaa=sorted(a,key=lambda a:a[1],reverse=False)
>>> aaa
[(5, 'chen'), (3, 'hang'), (7, 'wang'), (4, 'yadan')]

dd

Python 字典排序

在python里,字典是内置的数据类型,是个无序的存储结构,每一个元素是key-value对:

dict1={'A': 9, 'C': 5, 'B': 1, 'E': 14, 'D': 3, 'G': 3, 'F': 3, 'I': 9, 'H': 7, 'J': 1, 'L': 2, 'O': 8, 'N': 3, 'P': 4, 'S': 10, 'R': 5, 'U': 1, 'T': 17, 'W': 1, 'V': 1}
#对字典按值排序,以元组的形式返回
print sorted(dict1.iteritems(),key=lambda dict1:dict1[1],reverse=True)
#对字典按键排序,以元组的形式返回
print sorted(dict1.iteritems(),key=lambda dict1:dict1[0],reverse=False)

python的sorted相关的更多相关文章

  1. Python: sort,sorted,OrderedDict的用法

    Python: sort,sorted,OrderedDict的用法 from http://stqdd.com/archives/427 by 莫亚菜 python对容器内数据的排序有两种,一种是容 ...

  2. Python中sorted()方法

    Python中sorted()方法的用法 1.先说一下iterable,中文意思是迭代器. Python的帮助文档中对iterable的解释是:iteralbe指的是能够一次返回它的一个成员的对象.i ...

  3. python基础——sorted()函数

    python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个d ...

  4. 【Python】 sorted函数

    我们需要对List.Dict进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副本方法2.用built-in函数so ...

  5. NLP︱高级词向量表达(一)——GloVe(理论、相关测评结果、R&python实现、相关应用)

    有很多改进版的word2vec,但是目前还是word2vec最流行,但是Glove也有很多在提及,笔者在自己实验的时候,发现Glove也还是有很多优点以及可以深入研究对比的地方的,所以对其进行了一定的 ...

  6. Python字符串的相关操作

    1.大小写转换 判断字符串 s.isalnum() #所有字符都是数字或者字母 s.isalpha() #所有字符都是字母 s.isdigit() #所有字符都是数字 s.islower() #所有字 ...

  7. python中sorted()和set()去重,排序

    前言 在看一个聊天机器人的神经网络模型训练前准备训练数据,需要对训练材料做处理(转化成张量)需要先提炼词干,然后对词干做去重和排序 words = sorted(list(set(words))) 对 ...

  8. [转].Python中sorted函数的用法

    [Python] sorted函数 我们需要对List.Dict进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副 ...

  9. Python中sorted()方法的用法

    Python中sorted()方法的用法 2012-12-24 22:01:14|  分类: Python |字号 订阅 1.先说一下iterable,中文意思是迭代器. Python的帮助文档中对i ...

随机推荐

  1. haffman树c实现

    #include<stdio.h>#include<stdlib.h>#include<string.h>#define N 100#define M 2*N-1t ...

  2. winscp自动执行脚本

    我们经常使用WinSCP工具通过sftp协议上传获取文件,本文描述通过bat批量处理文件. 首先,我们打开dos命令窗口使用 cd \d :D\WinSCP 打开WinSCP安装目录 上传文件: wi ...

  3. angularJS 指令一

    指令1.指令本质上就是AngularJS拓展具有自定义功能的HTML元素的途径.通过自定义元素来创建指令,如:<my-directive></my-directive>.dir ...

  4. SpringBoot 配置文件 application.properties(二)

    mvc spring.mvc.async.request-timeout设定async请求的超时时间,以毫秒为单位,如果没有设置的话,以具体实现的超时时间为准,比如tomcat的servlet3的话是 ...

  5. Prefix.pch的作用和用法

    一般用于放置宏,省去xcode编译的时间 Hello World_Prefix.pch:扩展名.pch表示"precompiled header",这是一个你工程要用到的来自于外部 ...

  6. ok6410 u-boot-2012.04.01移植六完善MLC NAND支持

    继ok6410 u-boot-2012.04.01移植四.五后,开发板基本已支持MLC NAND,支持DM9000.但是通过NAND命令更新u-boot到NAND,还存在问题,需要根据u-boot的n ...

  7. C - Surprising Strings

                                   C - Surprising Strings 题意:输入一段字符串,假设在同一距离下有两个字符串同样输出Not surprising ,否 ...

  8. [CSS3] Text ellipsis

    Link: http://www.w3schools.com/cssref/tryit.asp?filename=trycss3_text-overflow div{ white-space: now ...

  9. 多版本号并发控制(MVCC)在分布式系统中的应用

    QQ群:289150599 问题 近期项目中遇到了一个分布式系统的并发控制问题.该问题能够抽象为:某分布式系统由一个数据中心D和若干业务处理中心L1,L2 ... Ln组成:D本质上是一个key-va ...

  10. POJ 1011 sticks 搜索

    Sticks Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 125918   Accepted: 29372 Descrip ...