为了账号安全,请及时绑定邮箱和手机立即绑定

组合长度不等的列表以形成字典

组合长度不等的列表以形成字典

拉风的咖菲猫 2022-07-12 15:30:42
您如何将一个列表与另一个长度不等的列表加入到字典中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} } 
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

更新(基于更改的问题)


您可以使用嵌套字典理解生成所需的结果:


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)]


查看完整回答
反对 回复 2022-07-12
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信