如何将两个列表转换为指定结构的同键字典?附示例需求
实现方法
方法一:基础循环实现
初始化空字典,遍历配对的键值元素,手动处理键不存在的情况:
x = ['high', 'low', 'high'] y = ['volume', 'value', 'value'] result = {} for key, val in zip(y, x): if key not in result: result[key] = [] result[key].append(val) print(result) # 输出: {'volume': ['high'], 'value': ['low', 'high']}
方法二:用dict.setdefault()简化
利用setdefault()自动初始化空列表,减少判断逻辑:
x = ['high', 'low', 'high'] y = ['volume', 'value', 'value'] result = {} for key, val in zip(y, x): result.setdefault(key, []).append(val) print(result)
方法三:用collections.defaultdict(推荐)
借助标准库的defaultdict指定默认容器类型,代码最简洁:
from collections import defaultdict x = ['high', 'low', 'high'] y = ['volume', 'value', 'value'] result = defaultdict(list) for key, val in zip(y, x): result[key].append(val) # 可选:转换为普通字典 result = dict(result) print(result)
内容的提问来源于stack exchange,提问作者Julio
相关产品推荐
相关产品推荐

