python学习--根据字典中的值的大小,对字典的项进行排序。

首先生成一个随机字典:

from random import randintd={x:randint(60,99) for x in "abcdefg"}   # {‘a‘: 62, ‘b‘: 97, ‘c‘: 87, ‘d‘: 68, ‘e‘: 91, ‘f‘: 76, ‘g‘: 88}

第一种方式,利用collections的子类Counter从大到小排序:
from collections import Counterd={x:randint(60,99) for x in "abcdefg"}c=Counter(d).most_common() #返回一个列表,按照dict的value从大到小排序[(‘b‘, 99), (‘g‘, 89), (‘d‘, 74), (‘e‘, 69), (‘a‘, 66), (‘c‘, 62), (‘f‘, 60)]print(c)

第二种方式,从小到大排序.总体思路:sorted函数可以对列表[]进行从小到大排序,对于字典{}dict,sorted函数只比较dict的key进行排序,所以要对dict进行调整变形。    1、利用zip函数把dict转换成一个列表,列表中每个元素都是一个tuple,tuple大小比较原理是,先比较第一个元素,第一个相同在比较第二个。    2、利用sorted函数对转换后的列表进行排序。z=zip(d.values(),d.keys())   #[(62, ‘a‘), (74, ‘b‘), (83, ‘c‘), (96, ‘d‘), (75, ‘e‘), (79, ‘f‘), (83, ‘g‘)],然后对这个列表进行sorted排序sorted(z)

第三种方式:[(a1,b1,c1),(a2,b2,c2),(a3,b3,c3),(a4,b4,c4)……]    sorted函数可以对这种集合进行指定元素排序。sorted(d.items(),key=lambda x:x[1]),第一个从参数是需要排序的列表,第二个参数是指定key(列表中每一项的第几个元素)来进行排序。解释这句代码:d.items()返回的是一个列表  [(‘a‘, 74), (‘b‘, 90), (‘c‘, 84), (‘d‘, 85), (‘e‘, 64), (‘f‘, 66), (‘g‘, 88)]sorted会对d.items()这个list进行遍历,把list中的每一个元素,也就是每一个tuple()当做x传入匿名函数lambda x:x[1],函数返回值为x[1],也就是key=x[1]=tuple()[1]=(‘a‘, 74)[1],也就是说按照里表中每个项的第二个元素进行排序(第一个是想x[0]).
 
				
时间: 2024-10-16 06:29:53

python学习--根据字典中的值的大小,对字典的项进行排序。的相关文章

Python字典中的值为列表或字典的构造方法

1.值为列表的构造方法 dic = {} dic.setdefault(key,[]).append(value) *********示例如下****** >>dic.setdefault('a',[]).append(1) >>dic.setdefault('a',[]).append(2) >>dic >>{'a': [1, 2]} 2.值为字典的构造方法 dic = {} dic.setdefault(key,{})[value] =1 *******

python字典中键值对的值为中文,打印成转义字符,怎么解决

今天是2019-10-02,学习代码第二天. python字典中键值对中有中文,打印的时候,发现成转义字符了.查了好久,解决.记录一下.useful. 今日份代码: 1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 # 字典和列表的区别 4 # 列表是有序的对象集合,字典是无序的对象集合 5 # 字典的特点,字典用{}定义,使用键值对存储数据,键值对间用,分开 6 # 键--key,索引 值--value,数据 键和值间用:分开 键--唯一的,只能取字

python学习之web中的html

Web概述web起源web特点1.易导航和图形化界面2.与平台无关3.分布式结构4.动态性5.交互性 html 网页结构 HTML(Hyper Text Mark-up Language )即是超文本标记语言, 通过使用标记标签来描述页面文档结构和表现形式的一种语言,再由浏览器进行解析,然后把结果展示在网页上.?超文本指的是超链接?标记指的是标签1).HTML文件用编辑器打开显示的是文本,可以用文 本的方式编辑.2). HTML文件用浏览器打开,浏览器会按照标签描述内容将文件渲染成网页,显示的网

python学习笔记7-函数返回值

python学习笔记7-函数返回值 使用return指定isNum()的函数返回值是true或者false, [[email protected] ~]# vim return.py #!/usr/bin/python import os import sys def isNum(s): if s.isdigit(): return True return False for i in os.listdir('/proc'): if isNum(i): print i

python之pickle | 修改文件中字典中的值

dump扔到硬盘上 load方法:加载到内存 修改某个值: load加载到内存 close 在open w  打开再写就是覆盖,不关的情况下dump会出现两段 再dump一下 覆盖到硬盘 close

Python中获取字典中最值对应的键

利用min(dict, key=dict.get) >>> d = {1:1, 2:0, 3:2} {1: 1, 2: 0, 3: 2} >>> min(d, key=d.get) 2 利用lambda函数 >>> min(d.items(), key=lambda x: x[1]) (2, 0) >>> min(d, key=lambda x: d[x]) 2

python学习日记-循环和键值对

循环:python循环有两个,for和while for循环表示某一项变量在集合内,就继续执行循环,直到变量不在几个内了,就跳出循环. 比如一个集合a=[1,2,3,4]; for i in a: do sth: while循环是条件循环,当满足条件才执行循环.否则就不执行. 比如 a=[1,2,3,4] i=0; while i<len(a):#就是说i的值比a的长度值小. do sth; i++;#必须控制变量. 键值对: 键值对就想c#里面的hashtable一样,一个键对应一个值. 要想

PYTHON 学习入门--Eclipse中安装pydev插件及调试

运行程序 运行 Python 源程序,有两种方法,以 example.py 为例: example.py代码: [python] view plaincopyprint? #!/usr/bin/env python # -*- coding:utf-8 -*- # ithomer.net a = 1 def display(): print("hello ithomer") global a print("a = %d" % a) a = 2 print("

python学习笔记(四)列表、元组、字符串及字典

1.列表及元组操作 1.1 列表 Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 定义列表: 1 >>> namelist = ['cc','uu','tt','yy','nn'] 变量namelist就是一个list.用len()函数可以获得list元素的个数: 1 >>> print(len(namelist)) 1.1.1 list取值 用索引来访问list中每一个位置的元素,记得索引是从0开始的: 1 &