python - 将不等长的列表组合成字典
问题描述
您如何将一个列表与另一个长度不等的列表加入到字典中
list_header=['a','b']
list_value=[1,2,3,4,5,6,5,7,8]
结果字典:
{"iteration1":{'a':1,'b':2},"iteration2":{'a':3,'b':4}, "iteration3":{'a':5,'b':6}, "iteration4":{'a':7,'b':8} }
解决方案
更新(基于更改的问题)
您可以使用嵌套字典理解生成所需的结果:
out = { "iteration" + str(i+1) : { list_header[j] : list_value[i*len(list_header)+j] for j in range(len(list_header)) } for i in range(len(list_value) // len(list_header)) }
print(out)
输出:
{'iteration3': {'b': 6, 'a': 5}, 'iteration2': {'b': 4, 'a': 3}, 'iteration4': {'b': 8, 'a': 7}, 'iteration1': {'b': 2, 'a': 1}}
原始答案
你不能创建这样的字典;字典键必须是唯一的。您可以创建一个元组列表:
list_header=['a','b']
list_value=[1,2,3,4,5,6,7,8]
out = [(h, v) for h, v in zip(list_header * (len(list_value) // len(list_header) + 1), list_value)]
print(out)
输出:
[('a', 1), ('b', 2), ('a', 3), ('b', 4), ('a', 5), ('b', 6), ('a', 7), ('b', 8)]
推荐阅读
- vue.js - 在 vuetify 树视图中加载 vuetify 数据表
- oauth-2.0 - 在 MS Outlook 与 WSO2 EI 集成中应用注册访问被拒绝
- python - 给定一个包含多个单词和数字的句子。找出其中不包含 9 的最大数
- mongodb - 如何删除单个帖子上的答案
- c++ - 在 C++ 中使用 EdDSA/Ed25519 算法创建 JWT
- java - 从java中的给定范围生成加拿大邮政编码
- sql-server - 如何在 Angular 9 中有效加载 jquery 数据表,其中包含来自 asp.net core 和 mssql 的 1000 万条记录?
- javascript - 反应输入值不会在按钮更改时重新呈现
- excel - Excel vlookup 或索引/匹配
- java - 无法使用 Java 中的 RDS 连接到 MySQL/Aurora:路径未与任何信任锚链接