创建一个字典

dict1={'a':2,'b':3,'c':8,'d':4}

1、分别取键、值

取字典的所有键,所有的值,利用dict1.keys(),dict1.vaules(),

由于键,值有很多个,所以要加s,另外注意这里要加括号,这样的小细节不注意,很容易犯错。

print(dict1.values(),dict1.keys())

结果:

dict_values([4, 2, 8, 3]) dict_keys(['d', 'a', 'c', 'b'])

可以看出,返回的是列表的形式

2、同时取键、值

同时取字典的键、值,dict1.items(),这里同样加s和括号

print(dict1.items())

结果:

dict_items([('d', 4), ('a', 2), ('c', 8), ('b', 3)])

可以看出,返回的结果是元组组成的列表

也就是说,通过dict1.items()这个函数,把字典形式的键、值,存在了一个元组内。

3、排序

3.1 sorted

先看一下,直接用sorted()排序的情况。

dict1={'a':2,'e':3,'f':8,'d':4}

dict2 = sorted(dict1)

print(dict2)

结果:

['a', 'd', 'e', 'f']

sorted()默认是对字典的键,从小到大进行排序

3.2 、对键反向排序

对键进行反向(从大到小)排序

dict1={'a':2,'e':3,'f':8,'d':4}

dict2 = sorted(dict1,reverse=True)

print(dict2)

结果:['f', 'e', 'd', 'a']

像这种对键进行排序,往往是为了得到 值(value)

拿到键最大,对应的值,如:

print(dict1[dict2[0]])#结果为8

当然我们也可以先拿到所有的key,然后再对key排序

dict1={'a':2,'e':3,'f':8,'d':4}

list1= sorted(dict1.keys(),reverse=True)

print(list1)    # 结果:['f', 'e', 'd', 'a']

3.3、对值排序

同样,用dict1.values()得到所有的values,然后对value排序

dict1={'a':2,'e':3,'f':8,'d':4}

list1= sorted(dict1.values())

print(list1)    #结果:[2, 3, 4, 8]

设值reverse=True 进行反向排序

也可以用dict1.items(),得到包含键,值的元组

由于迭代对象是元组,返回值自然是元组组成的列表

这里对排序的规则进行了定义,x指元组,x[1]是值,x[0]是键

dict1={'a':2,'e':3,'f':8,'d':4}

list1= sorted(dict1.items(),key=lambda x:x[1])

print(list1)

结果:

[('a', 2), ('e', 3), ('d', 4), ('f', 8)]

对键进行排序:

dict1={'a':2,'e':3,'f':8,'d':4}

list1= sorted(dict1.items(),key=lambda x:x[0])

print(list1)

结果:

[('a', 2), ('d', 4), ('e', 3), ('f', 8)]

4 itemgetter

from operator import itemgetter

d = {"a":8,"b":4,"c":12}

print(sorted(d.items(),key=itemgetter(0),reverse=True))

print(sorted(d.items(),key=itemgetter(1),reverse=True))

结果:

[('c', 12), ('b', 4), ('a', 8)]

[('c', 12), ('a', 8), ('b', 4)]

itemgetter(0),获取key

itemgetter(1),获取value

---------------------

转自原文:https://blog.csdn.net/ustbbsy/article/details/79637594

Python3字典排序的更多相关文章

  1. python3 字典常见用法总结

    python3 字典常见用法总结 Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表 ...

  2. day3--集合、文件操作、字符编码与转换、函数(递归,lambda,filter,map)、字典排序

    list1 = set([1, 2, 3, 4, 5, 6, 5, 5, 5])list2 = set([11, 2, 36, 'a', 5, 6, 5, 5, 5])list3 = set([1, ...

  3. python进阶--字典排序

    zip()函数 sorted() 要求对字典中,按值的大小排序 解决方案: 利用zip函数 zip函数介绍: zip函数可以将可迭代对象打包成一个个元组,在python3中返回一个对象,在python ...

  4. C# 字典排序Array.Sort

    Array.Sort可以实现便捷的字典排序,但如果完全相信他,那么就容易产生些异常!太顺利了,往往是前面有坑等你. 比如:微信接口,好多地方需要签名认证,签名的时候需要用的字典排序,如果只用Array ...

  5. python 字典排序 关于sort()、reversed()、sorted()

    一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...

  6. <转>python字典排序 关于sort()、reversed()、sorted()

    一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...

  7. java的字典排序

    按照教程上的代码还是报错 应该是字典排序的问题,不能是Arrays.sort()

  8. Python3 字典 get() 方法

     Python3 字典 描述 Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 ...

  9. Python3 字典 fromkeys()方法

     Python3 字典 描述 Python 字典 fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值. 语法 fromkeys()方法语法: ...

随机推荐

  1. 浅谈JS的toString

    任何一个对象都有toString()方法(默认继承自Object,自己可以重写),此方法返回一个字符串. var sayYo = function () { alert("sayYo2!&q ...

  2. 4.web基础$_POST

  3. OpenStack I18N

    OpenStack I18N 官方文档: https://docs.openstack.org/oslo.i18n/latest/user/usage.html https://docs.openst ...

  4. ini_set()

    ini_set ( string $varname , string $newvalue ) : string 设置指定配置选项的值.这个选项会在脚本运行时保持新的值,并在脚本结束时恢复. 参数 va ...

  5. Node.js和JavaScript的区别与联系

    虽然不能说它们一点关系也没有,但它们的确关系不大: 第一,JavaScript是一门编程语言(脚本语言),而Node.js是一个平台,可以简单理解为它是JavaScript的一种执行环境. 第二,Ja ...

  6. Eclipse左侧的工程目录消失解决办法

    菜单栏window---->show view--->other--->project explorer

  7. vue 路由跳转到本页面,ts 监听路由变化

    @Watch('$route') routechange(to: any, from: any) { //参数不相等 if (to.query.name!=from.query.name) { //t ...

  8. 源码详解系列(五) ------ C3P0的使用和分析(包括JNDI)

    简介 c3p0是用于创建和管理连接,利用"池"的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制.连接可靠性测试.连接泄露控制.缓存语句等功能.目前,hibernate ...

  9. vscode10个必装的插件

    VSCode 必装的 10 个高效开发插件   本文介绍了目前前端开发最受欢迎的开发工具 VSCode 必装的 10 个开发插件,用于大大提高软件开发的效率. VSCode 的基本使用可以参考我的原创 ...

  10. Kubernetes 动态PV使用

    Kubernetes 动态PV使用 Kubernetes支持动态供给的存储插件:https://kubernetes.io/docs/concepts/storage/storage-classes/ ...