Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python对字典进行排序

python对字典进行排序

原创
作者头像
IT工作者
发布于 2022-07-07 06:51:22
发布于 2022-07-07 06:51:22
2.1K00
代码可运行
举报
文章被收录于专栏:程序技术知识程序技术知识
运行总次数:0
代码可运行

标准的python字典是无序的。即使对(键、值)对进行了排序,也无法以保留排序的方式将它们存储在dict中。

如果仅仅是按序遍历

如果你只是想要按字典key的顺序来遍历字典,那可以先对字典的 key 列表进行排序,然后遍历即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
my_dict = {'carl':40,
          'alan':2,
          'bob':1,
          'danny':3}
    
for key in sorted(my_dict.keys()):  # 可以改成for key in sorted(mydict.keys()):
    print("%s: %s" % (key, my_dict[key]))

其中 sorted(my_dict.keys()) 改成 sorted(my_dict) 同样可以达到返回排序后的字典 key 列表的效果

如果真的是想要有序字典

如果你真的是想要一个排好序的字典,而不是按字典key 顺序遍历字典,那么有两种方式,一个是用一个临时字典,在用上面的方式遍历字典的过程中,把key value存在新字典中;第二种方式是借用 ordereddict。

方式一:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
my_dict = {'carl':40,
          'alan':2,
          'bob':1,
          'danny':3}
new_dict = {}
    
for key in sorted(my_dict.keys()):
    new_dict[key] = my_dict[key]
 
print(new_dict)

运行结果,new_dict确实已经是一个按字典key顺序排好了序的字典

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{'alan': 2, 'bob': 1, 'carl': 40, 'danny': 3}

方式二:

sorted(my_dict.items())会返回一个 按key拍好了序的列表,将这个列表强转成一个有序字典即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import collections
 
my_dict = {'carl':40,
          'alan':2,
          'bob':1,
          'danny':3}
 
new_dict = {}
 
print(sorted(my_dict.items()))
 
new_dict = collections.OrderedDict(sorted(my_dict.items()))
print(new_dict)

运行结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[('alan', 2), ('bob', 1), ('carl', 40), ('danny', 3)]
OrderedDict([('alan', 2), ('bob', 1), ('carl', 40), ('danny', 3)])

python3.7 以上的版本,可以直接用 dict 代替 OrderDict

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import collections
 
my_dict = {'carl':40,
          'alan':2,
          'bob':1,
          'danny':3}
new_dict = {}
 
print(sorted(my_dict.items()))
 
new_dict = dict(sorted(my_dict.items()))
print(new_dict)

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[('alan', 2), ('bob', 1), ('carl', 40), ('danny', 3)]
{'alan': 2, 'bob': 1, 'carl': 40, 'danny': 3}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python编程思想(12):for-in循环
for-in循环可以用于遍历范围、列表、元素和字典等可迭代对象包含的元素。for-in循环的语法格式如下:
蒙娜丽宁
2020/06/16
3.7K0
【Python入门第十讲】字典
字典(Dictionary)是 Python 中常用的数据结构之一,用于存储键值对(key-value pairs)。字典的特点是可变的、无序的,且键(key)必须是唯一的,但值(value)可以重复。
不惑
2024/02/01
2350
【Python入门第十讲】字典
python中字典的排序(Ordered
Help on built-in function sorted in module builtins:
py3study
2020/01/06
2.6K0
Python字典不是不可以排序,是你方法没用对!
摘要:排序是个古老的话题,不过对于字典的排序,常常会让 小白手足无措。好像没有找到可以排序字典的函数呢!到底是按key排序,还是按value排序呢?字典到底可不可以按value排序呢?排完序后,还可以通过key检索吗?当然,还会抛出很多问题,而本文将完美地给出了这些问题的答案!
蒙娜丽宁
2021/02/19
1.1K0
网络工程师学Python-5-Python 字典
Python 字典(Dictionary)是一种可变、无序、键值对(Key-Value Pair)的数据结构,用于存储和管理一组数据。字典通过键(Key)来访问对应的值(Value),类似于实际生活中的字典,可以通过关键词找到对应的解释或定义。
网络技术联盟站
2023/04/17
9830
网络工程师学Python-5-Python 字典
Python全网最全基础课程笔记(八)——字典,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
get() 方法提供了一种更安全的访问字典项的方式,如果指定的键不存在,则返回一个默认值(默认为 None),而不是抛出 KeyError。
小白的大数据之旅
2024/11/20
1720
Python全网最全基础课程笔记(八)——字典,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python之有序字典(OrderedDict)与 普通字典(dict)
之前我认为python中的字典是无序的,因为它是按照hash来存储的,最近开发过程中对数据序列化之后,返回了OrderedDict类型数据,返回数据格式如下
SEian.G
2021/10/22
3.2K0
day08-字典
字典(Dict)是一种可变、无序的数据类型;那等等...我们回忆一下,字符串列表元祖是什么样的?
似小陈吖
2024/01/18
1480
13 个非常有用的 Python 代码片段,建议收藏!
假设我们在 Python 中有两个列表,我们希望将它们合并为字典形式,其中一个列表的项作为字典的键,另一个作为值。这是在用 Python 编写代码时经常遇到的一个非常常见的问题
周萝卜
2022/09/28
7370
13 个非常有用的 Python 代码片段,建议收藏!
详解Python中列表、元组、字典,所有操作,一网打尽
列表(List)是Python中最常用的数据结构之一,它是一个可变的、有序的元素集合。
统计学家
2024/09/23
1420
详解Python中列表、元组、字典,所有操作,一网打尽
Python内置数据结构之字典(完整版)
今天主要讲解上次未完成的内置数据结构-字典。小白这几天比较忙,忙的忘记了健身及写作,特发此文以作补偿。 Python字典简介 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 这种key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value。 请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。 和list比较,di
1846122963
2018/03/09
8790
python 字典一些常见的魔法方法以及遇到的面试题
dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石。模块的命名空间、实例的属性和函数的关键字参数中都可以看到字典的身影。跟它有关的内置函数都在__builtins__.__dict__模块中。正是因为字典至关重要,Python 对它的实现做了高度优化,而散列表则是字典类型性能出众的根本原因。
用户4945346
2020/07/20
7620
[编程经验] Python之collections模块
collections模块是一个不用不知道,一用就上瘾的模块。因为它提供了几种非常方便的数据结构和方法,在有些情况下特别好用。今天给大家总结一下其中的OrderDict和Counter两个方法,在平时我经常用的方法,希望你也能喜欢它。然后还有比如deque,namedtuple,defaultdict等也是很有的方法,了解了以后重点是熟练的使用,灵活的应用到你的具体任务中,是需要掌握的。 1. OrderDict # Example 1 dict_1 = dict() dict_1['A'] = "I lo
用户1622570
2018/04/11
6800
[PYthon] 字典
Python 中的字典(Dictionary)是一种非常强大且常用的数据结构,它提供了键-值对之间的映射
DevKevin
2024/03/19
1070
[PYthon] 字典
零基础学习 Python 之字典
大家好,这里是零基础学习 Python 系列,在这里我将从最基本的Python 写起,然后再慢慢涉及到高阶以及具体应用方面。我是完全自学的 Python,所以很是明白自学对于一个人的考验,所以在这里我会尽我最大的努力,把 Python 尽可能简单的表述清楚,让更多想要学习 Python 的朋友能够入门。同时写这个教程也算是对自己之前所学知识的一个巩固和提高,喜欢的朋友们可以点个关注,有问题欢迎随时和我交流。本文所有的代码编写均是Python3 版本。
编程文青李狗蛋
2019/11/07
4160
Python学习——collections系列
一 ,计数器(counter) Counter是对字典类型的补充,用于追踪值得出现次数 ps:具备字典的所有功能 + 自己的功能 例: >>> from collections import Counter >>> c = Counter('aadsassdsdads') >>> print(c) Counter({'a':4,'d':4,'s':5}) 基本操作方法: >>> c = Counter('abcdeabcdabcaba') 1.most_common(N)数量从大到小排列,获取
zenRRan
2018/04/10
7100
Python 字典 dict
有时候为了方便起见,就算某个键在映射里不存在,我们也希望在通过 这个键读取值的时候能得到一个默认值。有两个途径能帮我们达到这个目的,一个是通过 defaultdict,这个类型而不是普通的 dict,另一个 是给自己定义一个 dict 的子类,然后在子类中实现 __missing__ 方法。
为为为什么
2022/08/09
8530
Python 字典 dict
13 个非常有用的 Python 代码片段
假设我们在 Python 中有两个列表,我们希望将它们合并为字典形式,其中一个列表的项作为字典的键,另一个作为值。这是在用 Python 编写代码时经常遇到的一个非常常见的问题
Python学习者
2023/03/18
7700
python简单的分析文本
import collections import re #读取tips.txt文件内容,type(mytips)=str with open("tips.txt","r",encoding="utf-8") as tip: mytips=tip.read().lower() #正则去除非中英文字符, strip_file=re.sub(r"\W+","",mytips) print("正则去除非中英文字符:\n{}".format(strip_file)) print() #筛选
py3study
2020/01/02
7280
#小手一抬学Python# Python字典已经掌握了【附源码】
已经学完了列表与元组,那这两个都是按照顺序排列的,所以可以用索引取到值,本篇博客要学习的是字典,由上文可知,字典肯定就是不能按照索引取到值,就是没顺序,非序列的数据结构。
程序员迪迪
2022/01/04
7330
相关推荐
Python编程思想(12):for-in循环
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验