如何按键对字典进行排序?

2023-12-29

如何按字典键对字典进行排序?

输入示例:

{2:3, 1:89, 4:5, 3:0}

期望的输出:

{1:89, 2:3, 3:0, 4:5}

Note:对于 Python 3.7+,请参阅这个答案 https://stackoverflow.com/a/47017849

标准 Python 字典是无序的(直到 Python 3.7)。即使您对(键,值)对进行排序,您也无法将它们存储在dict以保留顺序的方式。

最简单的方法是使用OrderedDict http://docs.python.org/library/collections.html#collections.OrderedDict,它会记住元素插入的顺序:

In [1]: import collections

In [2]: d = {2:3, 1:89, 4:5, 3:0}

In [3]: od = collections.OrderedDict(sorted(d.items()))

In [4]: od
Out[4]: OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])

别介意路od被打印出来;它会按预期工作:

In [11]: od[1]
Out[11]: 89

In [12]: od[3]
Out[12]: 0

In [13]: for k, v in od.iteritems(): print k, v
   ....: 
1 89
2 3
3 0
4 5

Python 3

对于 Python 3 用户,需要使用.items()代替.iteritems():

In [13]: for k, v in od.items(): print(k, v)
   ....: 
1 89
2 3
3 0
4 5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何按键对字典进行排序? 的相关文章

  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • 如何生成给定范围内的回文数列表?

    假设范围是 1 X 120 这是我尝试过的 gt gt gt def isPalindrome s check if a number is a Palindrome s str s return s s 1 gt gt gt def ge
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9

随机推荐

  • Linq 查询返回父子的扁平化列表

    对 linq 的世界仍然陌生 我需要一些帮助将有孩子的父母列表扁平化为一个父子列表 像这样 class Program static void Main List
  • pip install 命令出错,退出状态为 1

    我有这个requirments txt file confluent kafka avro 1 1 0 当我运行命令时 pip3 install r requirments txt 这是我收到的错误 ERROR Command errore
  • canFetchMore() 和 fetchMore() 未按预期工作

    我在使用延迟加载实现 Qt 树模型时遇到问题canFetchMore and fetchMore 我有这个代码 from PySide QtCore import Qt QAbstractItemModel QModelIndex from
  • NSFetchedResultsController 提供表视图,同时同一持久存储的后台更新导致死锁

    仍在致力于将应用程序从每次使用或显示信息时下载信息 转变为使用 CoreData 将其缓存在手机上 由 MagicalRecord 提供 这是在 iOS 7 上 因为我们没有设置数据推送系统来在后端的某些数据发生变化时自动更新手机的缓存数据
  • 我应该在 Gradle 依赖项中添加什么?

    我的项目中有多项活动 但我在 Gradle 中没有任何依赖项 我有这些进口 我在这些导入中遇到错误 例如 Appcompat appcompatActivity 等等 import androidx appcompat app AppCom
  • 从挂起的 Intent 启动的 Intent getExtra

    我试图在用户从列表中选择带有时间的内容后发出一些警报 并在给定时间为其创建通知 我的问题是广播接收器无法接收我的 Intent 上的 putExtra 的 showname 它总是得到空值 这是我大多数意图的做法 但我认为这次可能是因为pe
  • TypeScript var 与 import

    在 TypeScript 中 有什么区别 import http require http and var http require http 我看到这两种方式都在代码源中使用 它们可以互换吗 Your import语句是 TypeScri
  • Sandy-Bridge CPU规格

    我能够将有关 Sandy Bridge E 架构的一些信息整合在一起 但我并不完全确定所有参数 例如L2 缓存的大小 任何人都可以确认它们都是正确的吗 我的主要来源是64 ia 32 架构 优化 手册 pdf http www intel
  • 按需加载/卸载 ELF 部分?

    对于一个相当晦涩的用例 我想要一个 大型 静态链接的 Linux 可执行文件 由一小段控制代码和大段静态 只读 数据组成 为了节省内存 是否可以让加载器仅加载控制代码的部分 然后根据需要手动加载 RO 数据的部分 并在处理完成后再次卸载它们
  • 在四开本中使用 kable 在表格中使用 Markdown 格式

    使用 quarto 的 HMTL 输出功能 我尝试从 data frame 生成一个 kable 其中包含一些应显示在最终文档中的 Markdown 样式格式 在实际用例中 我有许多文档已经以这种方式格式化 我想重新使用这些命令来正确呈现输
  • 删除gridview选择器列

    我确信这个问题的答案是非常明显的 但是对于我来说 我无法弄清楚如何从默认的 winforms gridview 中删除 选择器 列 红色箭头所指的列 我尝试过以编程方式删除该列gridview Columns 0 Remove但这只是删除了
  • iOS 模拟器恢复位置设置

    我正在调试 gt 位置 gt 自定义位置下使用自定义位置 虽然此设置对我来说效果很好 但模拟器经常将我的设置从 自定义位置 更改为 无 此恢复似乎没有模式 因为我可能会运行同一个项目 5 或 10 次而不会恢复设置 有时 我每运行 1 或
  • 检测客户端设备是否支持 :hover 和 :focus 状态

    听起来像是一个简单的问题 但事实证明解决起来相当具有挑战性 对于某些网站 我的内容仅在用户悬停 聚焦链接时才会显示 然而 该链接本身有一个目标 如果触摸屏用户点击其中一个链接 浏览器会立即转到href地点 这意味着悬停内容永远不可见 这就是
  • 需要使用java将EMF转换为jpeg,png文件格式

    我需要使用完整的java代码将emf wmf文件格式转换为png或jpeg 因为某些浏览器不支持这些格式 任何人都可以指导我 提前致谢 最快的方法可能是使用图像魔法 http www imagemagick org 确实如此support
  • MapFragment和Camera似乎在同一个Activity中互相干扰

    我正在尝试将 Google Maps Android API v2 中的 MapFragment 与相机预览结合使用 我需要能够在相机预览和 MapFragment 之间切换 但我无法使其工作 对于相机预览 我从以下位置复制了 Camera
  • 如何将 Bash 数组的元素连接到分隔字符串中?

    如果我在 Bash 中有一个这样的数组 FOO a b c 如何用逗号连接元素 例如 生产a b c 支持多字符分隔符的 100 纯 Bash 函数是 function join by local d 1 f 2 if shift 2 th
  • 使用 shell 脚本自动传输 scp 文件

    我的 UNIX 系统上的一个目录中有 n 个文件 有没有办法编写一个 shell 脚本 通过 scp 将所有这些文件传输到指定的远程系统 我将在脚本中指定密码 这样我就不必为每个文件输入密码 使用 SSH 密钥 而不是在 shell 脚本中
  • 如何使用破折号创建 shell 变量?

    在 Linux 环境中 我想创建一个带有破折号的变量名 这是可能的 因为我可以在詹金斯中设置一个类似的名称 为此env给出输出 以及其他行 variable with dashes test 但如何直接在 shell 上做到这一点呢 正在做
  • Zend:表单验证:在干草堆错误中找不到值

    我有一个有 2 个选择的表格 根据第一个选择的值 它使用 AJAX 更新第二个选择的值 这样做会使表格无效 所以 我做了下一个改变 form this gt getAddTaskForm the form if form gt isVali
  • 如何按键对字典进行排序?

    如何按字典键对字典进行排序 输入示例 2 3 1 89 4 5 3 0 期望的输出 1 89 2 3 3 0 4 5 Note 对于 Python 3 7 请参阅这个答案 https stackoverflow com a 47017849