python字典是常用的数据结构,经常用到各种python字典的排序,记录一下不同字典排序的方法。

正常字典排序

正常的字典我们都知道,其排序如下:

    a={100:1,101:0,102:2}b=sorted(a.items(),key=lambda x:x[1])

输出:

[(101, 0), (100, 1), (102, 2)]

理解了上面这个key的含义,lambda可以理解为一个函数,输出为x:x[1],即字典的第一个值,合起来就是以字典的第一个值作为key排序。所以嵌套字典就是按如下进行排序

嵌套字典排序

如果是嵌套字典

a={100:{'x':1,'y':2},101:{'x':2,'y':0},102:{'x':0,'y':3}}

排序如下

a={100:{'x':1,'y':2},101:{'x':2,'y':0},102:{'x':0,'y':3}}
b=sorted(a.items(),key=lambda x:x[1]['x'])

x[1]表示{‘x’:1,‘y’:2},那么x[1][‘x’]就代表按’x’排序,排序结果如下:

[(102, {'x': 0, 'y': 3}), (100, {'x': 1, 'y': 2}), (101, {'x': 2, 'y': 0})]

如果想要设置主序和次序,可以如下:

key=lambda item: (-item[1][3], item[1][1], -item[1][2]))

字典列表排序

字典列表形如:

a = [{'x': 0, 'y': 3}, {'x': 1, 'y': 2},{'x': 2, 'y': 0}]

排序如下:

a.sort(key=lambda i: i["x"],reverse=True)

常用场景举例

在某些应用场景中需要根据单词在字符串中出现的位置对单词列表排序进行排序

words_lst = ["Beijing", "Shanghai", "Nanjing", "Guangzhou"]
s = "犯罪嫌疑人曾在Guangzhou作案,辗转Beijing,之后流窜到Nanjing,最后曾在Shanghai现身后消失"

我们需要将words_lst中的地名根据在句中出现的先后顺序进行排序,代码如下:

words_lst.sort(key=lambda i: re.search(i, s, re.IGNORECASE).span(), reverse=False)

输出

['Guangzhou', 'Beijing', 'Nanjing', 'Shanghai']

Python字典排序、字典列表排序、嵌套字典排序相关推荐

  1. python列表中字典排序_python中字典排序,列表中的字典排序

    python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...

  2. python字典、列表、元祖使用场景_python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍...

    python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 元祖跟列表类似.只不过是有区别的. 如下: tuple(元祖英文) 跟列表类似, 元素不能 ...

  3. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  4. python列表字典操作_Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...

    创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...

  5. 【Python中的】列表生成式和字典生成式以及内置函数

    前言: 在Python中可以使用列表生成式进行代码的简化,并且提高代码的运行效率, Python中的内置函数可以使得在工作需求中,进行简单的代码运算并且不再进行 相应的函数定义,可以提高工作效率,本篇 ...

  6. python嵌套字典代码_python – 尝试在嵌套字典中查找唯一值的总和. (见例子!)

    假设我有这个变量list_1,它是一个字典列表. 每个字典都有一个名为"group"的嵌套字典,其中包含一些信息,包括"name". 我要做的是总结每个唯一组名 ...

  7. Python 基础详解-列表的反转与排序!跬步千里

    引言 学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895,817, 687 有任何不懂的都可以在里面交流,还有很好的视频教程pdf学习资料,大家一起学习交流! 列表是按 ...

  8. Pandas-数据结构-DataFrame(一):创建DF【①由数组组成的字典;②由Series组成的字典;③通过二维数组直接创建;④由字典组成的列表;⑤由字典组成的字典】

    "二维数组"Dataframe:是一个表格型的数据结构,包含一组有序的列,其列的值类型可以是数值.字符串.布尔值等. Dataframe中的数据以一个或多个二维块存放,不是列表.字 ...

  9. python字典嵌套列表怎么访问值的某个元素_通过键列表访问嵌套字典项?

    使用reduce()翻阅字典:from functools import reduce  # forward compatibility for Python 3import operatordef  ...

  10. python字典操作、对字典元素输出练习(字典嵌套列表,嵌套字典)

    content = {'name':['张三','李四','法外狂徒',{"邪":"王五","恶":'孙六'}],'day':[('周一', ...

最新文章

  1. ios PNG Crush error (PNG图片错误)
  2. 【clickhouse】ClickHouse之DBA运维宝典
  3. Spring学习总结(26)——Spring事务原理详解
  4. Slim生成的ckpt文件转PB文件
  5. mysql etimedout_Node.js获取请求ETIMEDOUT和ESOCKETTIMEDOUT
  6. 湖北省金税盘服务器链接网站,湖北省网上税务局入口:https://wsswj.hb-n-tax.gov.cn...
  7. 国内主流银行业金融系统分析
  8. 设计原则-依赖倒置原则
  9. bzoj 3375: [Usaco2004 Mar]Paranoid Cows 发疯的奶牛
  10. java零基础学习笔记(代码+注解+练习)_面向对象OOP
  11. BUG生命周期和管理
  12. 服务交付服务规范十要素
  13. python中文编辑_python用Tkinter做自己的中文代码编辑器
  14. php 聊天室 教程,基于PHP的聊天室编程思想-PHP教程,PHP基础
  15. Android事件分发之ACTION_CANCEL机制及作用
  16. teamviewer存在linux版本_Ubuntu16.04 安装Teamviewer
  17. vue-baidu-map插件中bm-marker组件嵌套bm-info-window组件使用,在地图上生成多个点
  18. DELL台式机Linux ubuntu 20.04.5 安装
  19. win10安装chocolatey及使用
  20. 用Visual Studio开发安卓应用

热门文章

  1. 年龄php,PHP根据生日计算年龄两种方法(周岁)
  2. Vscode - 修改插件安装目录
  3. ansible 高级用法
  4. 推荐系统之LFM--潜在因子模型
  5. 怎样在文章末尾添加尾注(将尾注的数字变为方括号加数字)
  6. sublime text 一些常用插件
  7. java paramiko_无法导入paramiko
  8. 15、配置路由器的动态路由(RIP协议)
  9. c语言变大变小的图片,51单片机模拟水滴由小变大然后滴落现象(附带C语言源码)...
  10. identifier of an instance of was altered from to null