如何将三个列表与指定键打包为嵌套字典?(Python)
解决方案:将列表打包为嵌套字典结构
嘿,这事儿用Python的字典推导式加zip()就能轻松搞定,给你写个简洁的实现:
# 原始数据 idx = ['a', 'b', 'c', 'd'] l_1 = [1, 2, 3, 4] l_2 = [5, 6, 7, 8] key_1 = 'mkt_o' key_2 = 'mkt_c' # 可选:先检查列表长度是否一致,避免数据不匹配问题 if len(idx) != len(l_1) or len(idx) != len(l_2): raise ValueError("所有输入列表必须长度相同!") # 构建目标嵌套字典 result = { item_key: {key_1: val_from_l1, key_2: val_from_l2} for item_key, val_from_l1, val_from_l2 in zip(idx, l_1, l_2) } # 输出结果 print(result)
代码解释:
zip(idx, l_1, l_2)会把三个列表对应位置的元素打包成元组,比如第一个元组就是('a', 1, 5),依次遍历所有元组;- 字典推导式会逐个将
item_key作为外层字典的键,同时用给定的key_1和key_2构建内层字典,分别对应l_1和l_2中的值; - 可选的长度检查能提前发现数据不匹配的问题,避免生成不完整的字典。
运行后得到的结果完全符合你的需求:
{'a': {'mkt_o': 1, 'mkt_c': 5}, 'b': {'mkt_o': 2, 'mkt_c': 6}, 'c': {'mkt_o': 3, 'mkt_c': 7}, 'd': {'mkt_o': 4, 'mkt_c': 8}}
内容的提问来源于stack exchange,提问作者Jason Strimpel
相关产品推荐
相关产品推荐

