python中字典按键、值进行排序
看到排序,就不禁想起python中的sort和sorted
sort是列表中的方法,用于对列表进行排序(改变的是原列表,不返回新列表)
用法: list.sort(key=None,reverse=True) ,参数中reverse默认是False,表示升序,如果设置成True就是降序(注意要首字母要大写)
sorted是Python的内建函数,用于对可迭代对象进行排序,返回一个新的迭代对象
用法:sorted(iterable,key=None,reverse=False),参数中iterable是迭代对象,key是用来比较的元素(比如字典可以选择按键或值进行排序),reverse默认False升序,可设置成True降序(注意要首字母要大写)
对列表进行排序既可以用sort也可以用sorted
from random import randint
# sort只能对列表使用,sorted用于所有可迭代对象
# randint是random模块下的一个函数,可以生成范围内的一个随机数
list = [randint(1,100) for i in range(10)]
print('列表排序前:',list ,'地址为:',id(list))
list1 = list.sort(reverse=True)
print('用sort降序排序后返回:',list1,'此时原始列表为:',list )
list2 = sorted(list,reverse=True)
print('用sorted降序排序后返回:',list2 ,'地址为:',id(list2))
用sort和sorted对列表进行排序
运行结果为:

可以看出用sort返回值是None,用sorted则会返回一个新的列表。如果不用保存原始列表的话,用sort方法节省空间、效率会高一些。
接下来用sorted对字典进行排序(sort只能用于对列表排序)
按键排序:
sorted(dict.items(),key=lambda dict:dict[0],reverse=False)返回的是列表,列表内是根据键(key)排好序的元祖
sorted(dict,key=lambda dict:dict[0],reverse=False)返回的是列表,列表内是排好序的键(key)
sorted(dict.keys(),reverse=False)返回的是列表,列表内是排好序的键(key)
按值排序:
sorted(dict.items(),key=lambda dict:dict[1],reverse=False)返回的是列表,列表内是根据值(values)排好序的元祖
sorted(dict.values(),reverse=False)返回的是列表,列表内是排好序的值(values)
关于lambda匿名函数,可以看https://www.cnblogs.com/xiaocaiqa/p/12469583.html
如果需要返回一个字典,那么就要对返回的列表进行处理:
python中字典按键、值进行排序的更多相关文章
- python根据字典的值进行排序:
有一个列表嵌套字典:[{"a": 5}, {"b": 4}, {"c": 1},{"e": 2}, {"d&q ...
- python中字典排序,列表中的字典排序
python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...
- python中字典的循环遍历的两种方式
开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...
- Python中字典和集合
Python中字典和集合 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元 ...
- PHP如何根据数组中的键值进行排序
主要是使用PHP的排序函数,asort()和arsort(). 为了减少代码的耦合性,我们将根据数组中的键值进行排序封装成一个函数 <?php $array = array( array(), ...
- python中字典的陷阱
把字典与列表组合,如 i=20 s=[]#定义一个空列表 b={'d':i}#定义一个字典 while i>0: i=i-1 b['d']=i#更新字典的值 s.append(b) print( ...
- python中字典排序
一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...
- 浅谈python中字典append 到list 后值的改变问题
看一个例子 ? 1 2 3 4 d={'test':1} d_test=d d_test['test']=2 print d 如果你在命令行实践的话,会发现你改动的是d_test ,但是d 也跟着改变 ...
- Python - 字典按值(value)排序
字典安值排序是一个伪命题. 字典本身是不能被排序的, 已经依照关键字(key)排序, 可是列表(list)和元组(tuple)能够排序, 所以字典须要转换列表后排序. 如 import operato ...
随机推荐
- 使用TestNG,Apahcje POI和Excel文件进测试行数据驱动测试
import com.cxy_fanwe.common.test_fanwe_qiantai;import org.apache.http.Header;import org.apache.http. ...
- 渲染优化之CSS Containment
引言 在开始介绍今天的主角 CSS Containment 之前,我们需要了解一些前置知识回流和重绘,方便我们理解以及应用的场景. 简单回忆下回流和重绘 回流(Reflow):当浏览器必须重新处理和绘 ...
- Sqli-Labs less1-4
首先,记录一下基础知识,可能不全: 几个常用的函数: 1.version() --Mysql版本 2.user() --数据库用户名 3.database() --数据库名 4.@@datad ...
- 000 PCI Express协议入门指南目录
一.001 PCI Express体系结构(一)
- NOIP 模拟 $17\; \rm 世界线$
题解 \(by\;zj\varphi\) 此题经简单观察可发现,一个点的贡献就是这个点所能到的点减去它的出度 那么我们就可以暴力搜索,但是显然会超时,所以我们可以使用一个黑科技 \(\rm bitse ...
- 题解 P6271 [湖北省队互测2014]一个人的数论
通过这道题学了伯努利数,写篇题解推一下 题目 先推一下式子 \[\sum_{i=1}^ni^d[gcd(i,n)=1] \] \[\sum_{i=1}^{n}i^d\sum_{k|i}\sum_{k| ...
- noip 模拟 7
我花了我多久的rp啊-- 考试经过 这次是三道题,依旧先看一遍,然后从头开始做 T1一看,这好像是KMP?等等,我好像忘了啊你个废,没事哈希也能做,On似乎可以呀,一波操作,我是不是要A题了? 转到T ...
- SSM自学笔记(二)
3.SpringMVC入门 1.Spring与Web环境集成 1.1 ApplicationContext应用上下文获取方式 应用上下文对象是通过new ClasspathXmlApplication ...
- 详解C#中 Thread,Task,Async/Await,IAsyncResult的那些事儿
说起异步,Thread,Task,async/await,IAsyncResult 这些东西肯定是绕不开的,今天就来依次聊聊他们 1.线程(Thread) 多线程的意义在于一个应用程序中,有多个执行部 ...
- WPF 窗口 最前端 Topmost Owner
WPF 中,如果我们想把某个窗口一直置于最前端,那么可以设置Topmost=true; 但是,这样就会有另外一个问题,就时你这个窗口,会一直处于最顶层,即使你想切换到其他程序的时候. 比如,你自己写的 ...