从三个单独的列表创建嵌套字典

2024-04-07

我编写了一些代码来生成三个围绕项目的单独列表。第一个列表是 ID 列表,第二个列表是开始日期列表,第三个列表是结束日期列表。我想将这些列表合并到一个嵌套字典中。

item[0] from start_date and item[0]从 end_date 开始与item[0] from project_id[0]

project_id = ['project 1','project 2', 'project 3', 'project 4']

start_date = [datetime(2015,1,12), datetime(2015,1,13), datetime(2015,1,11), datetime(2015,1,13)]

end_date = [datetime(2015,1,15), datetime(2015,1,17), datetime(2015,1,15), datetime(2015,1,14)]

期望的输出:

d = {
    'project 1' : {'start date' : datetime(2015,1,12), 'end date' :  datetime(2015,1,15},
    'project 2' : {'start date' : datetime(2015,1,13), 'end date' :  datetime(2015,1,17},
    'project 3' : {'start date' : datetime(2015,1,11), 'end date' :  datetime(2015,1,15},
    'project 4' : {'start date' : datetime(2015,1,13), 'end date' :  datetime(2015,1,14},
}

使用 dict 理解和 zip:

d = {a:{"start date":b,"end date":c } for a,b,c  in zip(project_id,start_date,end_date)}

print d

{'project 4': {'end date': datetime.datetime(2015, 1, 14, 0, 0), 'start date': datetime.datetime(2015, 1, 13, 0, 0)}, 'project 2': {'end date': datetime.datetime(2015, 1, 17, 0, 0), 'start date': datetime.datetime(2015, 1, 13, 0, 0)}, 'project 3': {'end date': datetime.datetime(2015, 1, 15, 0, 0), 'start date': datetime.datetime(2015, 1, 11, 0, 0)}, 'project 1': {'end date': datetime.datetime(2015, 1, 15, 0, 0), 'start date': datetime.datetime(2015, 1, 12, 0, 0)}}

如果你想要一个完全有序的字典,请使用:

from collections import OrderedDict
d = OrderedDict()
for a,b,c in zip(project_id,start_date,end_date):
    d.setdefault(a,OrderedDict())
    d[a]["start date"] = b
    d[a]["end date"] = c
print(d)

{'project 1': OrderedDict([('start date', datetime.datetime(2015, 1, 12, 0, 0)), ('end date', datetime.datetime(2015, 1, 15, 0, 0))]),
'project 2': OrderedDict([('start date', datetime.datetime(2015, 1, 13, 0, 0)), ('end date', datetime.datetime(2015, 1, 17, 0, 0))]),
'project 3': OrderedDict([('start date', datetime.datetime(2015, 1, 11, 0, 0)), ('end date', datetime.datetime(2015, 1, 15, 0, 0))]),
'project 4': OrderedDict([('start date', datetime.datetime(2015, 1, 13, 0, 0)), ('end date', datetime.datetime(2015, 1, 14, 0, 0))])}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从三个单独的列表创建嵌套字典 的相关文章

随机推荐

  • AngularJS 如何发送多部分/混合

    我正在开发一个项目 我必须在 AngularJS 中上传少量 JSON 和文件 我已经使用 Danial Farid 的 Angular file upload 编写了代码 并且它正在工作 除了它总是发送 multipart form da
  • 运行 flutter doctor 时 Android 许可证状态未知

    我无法运行 flutter 应用程序 因为 Android 许可证未知的 cmd 部分中不断弹出错误 我什至尝试过更新 android studio 但没有帮助 还出现了一个错误 但我交叉检查了它要求删除的文件已经被删除 并且 androi
  • ASP.NET MVC - 使用相同的表单来创建和编辑

    创建用于创建新模型和编辑现有模型的表单的最佳实践方法是什么 人们可以为我指明方向吗 书呆子晚餐 http nerddinner codeplex com will really指明道路 创建 aspx
  • 如何从 webServiceTemplate 获取肥皂响应

    我需要使用 webServiceTemplate 获得肥皂响应 目前 在我现有的架构中 它使用函数 public boolean sendSourceAndReceiveToResult String uri Source requestP
  • 抗锯齿模式差异?

    这两种抗锯齿模式有区别吗 e Graphics SmoothingMode Drawing2D SmoothingMode AntiAlias e Graphics SmoothingMode Drawing2D SmoothingMode
  • Jekyll 中 localhost 和 github 页面的 Baseurl 行为不同

    我正在开发一个静态网站Jekyll 部署于github pages 我在使用配置文件中的 baseurl 时遇到问题 这是我的摘录 config yml baseurl blog url http remidoolaeghe github
  • Python:getopt、批处理文件和带空格的路径

    我正在使用 getopt 来解析选项和参数 我编写了一个批处理文件来调用 python 脚本 这样我就不必一遍又一遍地输入相同的命令 当我打印出参数列表时 路径被空格分割 并且每个路径都被单独解析 该路径用双引号引起来 但我不确定问题是什么
  • 无法配置 HTTPS 端点。未指定服务器证书,找不到默认的开发者证书

    我正在开发一个已配置 HTTPS 的结构应用程序 尽管我有有效的安装证书 但它抛出异常 这些说明来自这个博客 https www waynethompson com au blog dotnet dev certs https 为我工作 d
  • PHP:如何在字符串中的随机位置添加随机字符

    如何在字符串中的随机位置添加单个随机字符 0 9 或 a z 或 或 我可以通过以下方式获得随机位置 random position rand 0 5 现在我怎样才能得到一个随机数 0到9 OR随机字符 a 到 z OR OR 最后 我如何
  • 如何在 Xamarin for Android 中压缩文件?

    我有一个函数可以创建一个 zip 文件和传递的文件字符串数组 该函数确实成功创建了 zip 文件及其内部的 zip 条目文件 但这些 zip 条目文件是空的 我尝试了几种不同的方法 下面的函数代码是我最接近的工作代码 public stat
  • miniconda 和 miniforge 之间有什么区别?

    The 小型锻造厂 https github com conda forge miniforgeinstaller 是一个相对较新的 社区主导的 最小的 conda 安装程序 正如其自述文件中所述 可以直接与 Miniconda 进行比较
  • 如何在 Q/KDB 中生成格式化的日期字符串?

    如何从 Q 日期类型生成 ISO 日期字符串 yyyy MM dd 我考虑过连接各个部分 但我什至无法获取日期 月份 例如d 2015 12 01 d month prints 2015 12 即不仅仅是月份 如果您计划大规模执行此操作 即
  • pip、代理身份验证和“不支持代理方案”

    尝试在新的 python 安装上安装 pip 我遇到了代理错误 看起来像一个错误get pip or urllib3 问题是我是否必须经历设置的痛苦CNTLM 如此处所述 https stackoverflow com questions
  • 如何从控制台输入填充整数数组

    假设我知道用户将输入多少个数字 我有一个 int 数组 我想用用户输入的按特定字符 例如空格 分隔的整数来填充它 我设法用这种方法解决了它 int numbers new int 5 string input Console ReadLin
  • SciPy:半圆上的冯米塞斯分布?

    我试图找出定义包裹在半圆上的冯米塞斯分布的最佳方法 我用它来绘制不同浓度的无方向线 我目前正在使用 SciPy 的 vonmises rvs 本质上 我希望能够输入 pi 2 的平均方向 并将分布截断到两侧不超过 pi 2 我可以使用截断的
  • BeautifulSoup:抓取 HTML 仅在单击同一 URL 中的“接受”后才能访问

    我正在尝试从某个 URL 中抓取一些信息 我们称其为 www foo bar baz 当您使用网络浏览器访问该 URL 时 通常会出现 我已年满 18 岁 按钮 URL 不会改变 只有当您手动单击该按钮时才会加载实际内容 我想 模拟 单击
  • 如何在Python中对西班牙语进行编码和解码

    我用 python 2 7 编写了以下代码 coding utf 8 import sys string a os luz detr s print string encode utf 8 这会引发以下错误 print string enc
  • Xcode 6.1:加载插件失败

    我从 AppStore 更新了 Xcode 但由于以下错误消息而无法打开它 加载插件失败该插件或其必备插件之一可能丢失或损坏 可能需要重新安装 我尝试通过从应用程序文件夹中删除 Xcode 来卸载它并重新安装它 但问题仍然相同 谁能弄清楚出
  • 如何用不连续性数据绘制折线图?

    我在 R 中使用 ggplot2 库绘制图表时遇到问题 我有一个 日期 变量 其中包含 3 个 品牌 品牌中每个品牌的披露值 评级 的日期 问题是 一场活动结束后 市场就只剩下两个品牌了 因此 我想在同一图中分别绘制此事件之前和之后的线条
  • 从三个单独的列表创建嵌套字典

    我编写了一些代码来生成三个围绕项目的单独列表 第一个列表是 ID 列表 第二个列表是开始日期列表 第三个列表是结束日期列表 我想将这些列表合并到一个嵌套字典中 item 0 from start date and item 0 从 end