如何将Python中由元组与整数构成的列表转换为嵌套字典
解决方法
你可以直接通过基础的for循环实现转换,逻辑非常好理解,完全不需要复杂的语法:
方法1:纯基础语法实现(推荐初学者使用)
不需要引入任何额外库,每一步逻辑都清晰可见:
mylist = [ (('ART', 'bar'), 2), (('ART', 'get'), 1), (('b', 'bet'), 1), (('b', 'chest'), 1), (('b', 'kart'), 2), (('b', 'zee'), 1)] my_dict = {} for item in mylist: # 拆解当前元素:第一个子元组是两级key,第二个是对应值 (first_key, second_key), count = item # 如果一级key还不存在,先创建对应的空二级字典 if first_key not in my_dict: my_dict[first_key] = {} # 给二级字典赋值 my_dict[first_key][second_key] = count
运行后my_dict就是你需要的嵌套字典结构。
方法2:使用collections.defaultdict简化代码
如果不想手动判断一级key是否存在,可以用Python标准库的defaultdict自动处理初始化逻辑:
from collections import defaultdict mylist = [ (('ART', 'bar'), 2), (('ART', 'get'), 1), (('b', 'bet'), 1), (('b', 'chest'), 1), (('b', 'kart'), 2), (('b', 'zee'), 1)] my_dict = defaultdict(dict) for (first_key, second_key), count in mylist: my_dict[first_key][second_key] = count # 如果你需要最终是普通字典类型,加下面这行转换即可 # my_dict = dict(my_dict)
内容的提问来源于stack exchange,提问作者user17591271
相关产品推荐
相关产品推荐

