python 按时间顺序对 OrderedDict 键进行排序

2024-02-18

我有以下内容OrderedDict:

 from collections import OrderedDict
 a = OrderedDict()
 a['2016:April'] = 1
 a['2016:January'] = 2
 a['2017:February'] = 3
 a['2015:November'] = 4

我想按时间顺序按键对字典进行排序,结果是:

 OrderedDict([('2015:November', 4), ('2016:January', 2), ('2016:April', 1), ('2017:February', 3)])

您需要重新创建OrderedDict通过传递已排序的项目; (OrderedDict 记住键插入顺序)

import calendar
from collections import OrderedDict

months = {calendar.month_name[i]: i for i in range(1, 13)}
# => {'January': 1, 'February': 2,  .... 'December': 12}
def get_month_from_key(item):
    # Convert '2015:November' to (2015, 11)
    # Return value of this function is used to compare dictionary keys.
    year, month = item[0].split(':')  # item[0] is key
    return int(year), months.get(month, -1)

a = OrderedDict()
a['2016:April'] = 1
a['2016:January'] = 2
a['2017:February'] = 3
a['2015:November'] = 4

a = OrderedDict(sorted(a.items(), key=get_month_from_key))
# => OrderedDict([('2015:November', 4), ('2016:January', 2),
#                 ('2016:April', 1), ('2017:February', 3)])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 按时间顺序对 OrderedDict 键进行排序 的相关文章

随机推荐

  • 使用 wkhtmltopdf 设置横向方向

    我如何改变我的方向pdf生成的文件Wkhtmltopdf 我在 PHP 中调用它 如下所示 file fopen tmp html pdfTmp numRand html w or exit Unable to open file fwri
  • 如何从 File#path 获取 utf8 字符

    File path给我 Latin 1 字符 有没有办法让它给我 utf8 字符 或者我应该转换它返回的内容 如果是这样 最好 最简单的转换方法是什么 阐述 所以 我知道我可以这样做 Iconv new UTF 8 LATIN1 iconv
  • 如何将自定义验证器与 dropwizard 一起使用?

    我有一个由其他人编写的 REST api 其中处理对特定 url 的请求的方法接受一堆从路径参数填充的参数 POST Path classid studentid details Consumes MediaType MULTIPART F
  • 将 MySQL ANSI 输入转换为 UTF-8 [重复]

    这个问题在这里已经有答案了 我决定将我的网络应用程序从 ANSI 切换为 UTF 8 在 Notepad 中转换我的硬编码文件的编码后 这会执行转换 不仅仅是更改字符集 并为 UTF 8 设置新的元标记 我现在需要转换我的数据库数据 该数据
  • 从 Rails 控制器访问资产路径

    我正在共享一个配置 yml 文件客户端 我还需要在服务器端加载它 我已将其放置在 app assets javascripts configuration yml 中 我可以在视图内使用 asset path configuration y
  • 是否可以使用 JavaScript 触发键盘按钮?

    是否可以使用 JavaScript 触发键盘按钮 并根据 Caps Lock 按钮获取输入大小写 因此 如果我的大写锁定打开 它应该是大写的 或 如果它关闭了 它应该是小写的 触发关键事件 var ev jQuery Event keypr
  • 无法读取 C 中的某些注册表项

    我正在使用 RegOpenKeyEx 和 RegQueryValueEx 尝试获取 Windows 注册表中六个键的值 我能够完成六项中的四项 但在某些其他方面却失败了 wchar t getRegKeyValue HKEY rootKey
  • iOS7 中检测 MKOverlay 的触摸(MKOverlayRenderer)

    我有一个 MKMapView 可能绘制了数百个多边形 在 iOS7 上将 MKPolygon 和 MKPolygonRenderer 作为一个使用 我需要的是一种对用户触摸其中一个多边形进行操作的方法 例如 它们代表地图上具有一定人口密度的
  • 研究具有标准编码风格的优势

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 Stackoverflow 上有几个问题 关于是否有任何关于什么是最佳编码约定 风格的研究 这
  • 当闭源 CocoaPod 依赖于其他 pod 时,如何为它创建 XCFramework

    我正在寻找创建一个闭源 CocoaPod 根据我的研究 建议似乎是将其作为 XCFramework 分发 source https stackoverflow com a 66459296 1795356 似乎还可以通过在 Podspec
  • AngularJS - POST 后刷新

    在 Angular 中发出 http POST 请求后刷新内容的正确方法是什么 controller js var hudControllers angular module hudControllers hudControllers co
  • Postgres:授予角色/用户对由不同角色/用户创建的未来表的访问权限

    我正在构建一个 Spring Boot 应用程序 Flyway 数据库迁移在应用程序启动时执行 我决定使用两个不同的角色 角色 app 读 写表的权限 序列的权限app模式 和角色 迁移 advanced的权利app 移民模式 Flyway
  • 如何使用 Dropbox API v2 重命名文件

    我想使用 HTTP API 重命名 Dropbox 上的文件 根据新文档 可以移动 但不能重命名 https www dropbox com developers documentation http documentation files
  • 全页水平滚动问题

    整页滚动还有其他替代方案吗 整页滚动的示例 http jscrollpane kelvinluck com fullpage scroll html http jscrollpane kelvinluck com fullpage scro
  • 无法在 M1 Mac 上使用 pip3 安装 psycopg2

    我无法在我的 M1 Mac 上安装 psycopg2 并且我使用了 pip3 当我尝试安装时pip3 install psycopg2输出是这样的 ERROR Command errored out with exit status 1 c
  • 初始化结构体中的默认值

    如果我只需要初始化 C 结构的几个选择值 这是否正确 struct foo foo a true b true bool a bool b bool c bar 我是否正确地假设我最终会得到一个struct名为的项目bar有元素bar a
  • Eclipse、Android:意外无法执行 dex:多个 dex 文件定义

    问题 我无法构建我的项目 当我尝试时 控制台中显示以下标志 2014 09 28 23 49 30 Dex Loader Unable to execute dex Multiple dex files define Landroid su
  • 自定义 NSTableView 单元格的最简单方法是什么?

    我是一名 iOS 开发者 我最近开始了我的Mac项目 但是我发现与UITableViewCell UIView的子类 不同 NSTableView的cell是NSCell 我什至无法在IB中创建它 我想知道是否有一些简单的方法来创建像 NS
  • C# NUnit 参数化 TestCaseSource 值识别

    我在 NUnit 2 6 1 上使用 TestCaseSource 来测试具有不同对象类构造函数参数的相同断言 I mean Test TestCaseSource myConstructorsForMale public void Che
  • python 按时间顺序对 OrderedDict 键进行排序

    我有以下内容OrderedDict from collections import OrderedDict a OrderedDict a 2016 April 1 a 2016 January 2 a 2017 February 3 a