如何从嵌套列表为已预置唯一键的字典填充对应值
问题解决方法
已知条件:
- 已有的嵌套列表:
my_list = [[5,8],[5,10],[3,1],[10,18],[10,20],[21,30]] - 已提前生成包含所有唯一键、值为空列表的目标字典(示例:
result_dict = {3: [], 5: [], 10: [], 21: []})
填充方案
直接遍历嵌套列表的每组成对值,把第二个值追加到对应键的列表中即可,代码如下:
for key, val in my_list: result_dict[key].append(val)
运行后result_dict就是你需要的结构:{3: [1], 5: [8, 10], 10: [18, 20], 21: [30]}
拓展:未提前生成空字典的场景
如果你没有提前生成空值字典,用collections.defaultdict可以更简洁的完成整个需求,不需要提前提取唯一键:
from collections import defaultdict my_list = [[5,8],[5,10],[3,1],[10,18],[10,20],[21,30]] result_dict = defaultdict(list) for key, val in my_list: result_dict[key].append(val) # 如需转为普通字典,执行下方代码即可 # result_dict = dict(result_dict)
内容的提问来源于stack exchange,提问作者Just Some Noob
相关产品推荐
相关产品推荐

