猿问

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

您如何将一个列表与另一个长度不等的列表加入到字典中


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} } 


拉风的咖菲猫
浏览 138回答 1
1回答

慕斯王

更新(基于更改的问题)您可以使用嵌套字典理解生成所需的结果: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)]
随时随地看视频慕课网APP

相关分类

Python
我要回答