如何在Python中对嵌套字典(有列表)进行排序?

问题描述 投票:0回答:1

我是Python编程新手,我陷入了嵌套字典排序的困境如何按时间顺序对以下字典进行排序?

{2024: {
  'Jul': ['Rate', 'Hours', 'Cost']
  'Jan': ['Rate', 'Hours', 'Cost'],
  'Feb': ['Rate', 'Hours', 'Cost'],
  'Mar': ['Rate', 'Hours', 'Cost'],
  'Apr': ['Rate', 'Hours', 'Cost'],
  'May': ['Rate', 'Hours', 'Cost'],
  'Jun': ['Rate', 'Hours', 'Cost']}}

输出应如下所示:

{2024: {
  'Jan': ['Rate', 'Hours', 'Cost'],
  'Feb': ['Rate', 'Hours', 'Cost'],
  'Mar': ['Rate', 'Hours', 'Cost'],
  'Apr': ['Rate', 'Hours', 'Cost'],
  'May': ['Rate', 'Hours', 'Cost'],
  'Jun': ['Rate', 'Hours', 'Cost'],
  'Jul': ['Rate', 'Hours', 'Cost']}}

通过互联网搜索我只能找到一层嵌套。

python sorting nested
1个回答
0
投票

您可以使用对象理解:

#!/usr/bin/env python

old = {2024: {
  'Jul': ['Rate', 'Hours', 'Cost'],
  'Jan': ['Rate', 'Hours', 'Cost'],
  'Feb': ['Rate', 'Hours', 'Cost'],
  'Mar': ['Rate', 'Hours', 'Cost'],
  'Apr': ['Rate', 'Hours', 'Cost'],
  'May': ['Rate', 'Hours', 'Cost'],
  'Jun': ['Rate', 'Hours', 'Cost']}}
year = 2024
ordered_months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul']

new = {year: {month: old[year][month] for month in ordered_months}}
print(new)
© www.soinside.com 2019 - 2024. All rights reserved.