首页 > 解决方案 > Python将列表转换为特定的字典

问题描述

我有一个列表,我想转换为特定的 dictdict_a

输入

a = ['AAA: key1', 'value1', 'value2', 'AAA: key2', 'value3', 'value4', 'value5', 'AAA: key3', 'value6', 'value7']

预期输出

dict_a = {'key1': [value1, value2], 'key2': [value3, value4, value5], 'key3': [value6, value7]}

我的尝试

for elem in a:
    if a.startswith(AAA:):
        d_a = {elem}

标签: pythonlistdictionary

解决方案


这是使用的一种方式collections.defaultdict

from collections import defaultdict

a = ['AAA: key1', '  value1', '  value2', 'AAA: key2', '  value3', '  value4', '  value5', 'AAA: key3', '  value6', '  value7']

d = defaultdict(list)
for x in a:
    if not x.startswith('AAA'):
        d[c].append(x.strip())
    else:
        c = x.split(': ')[1]

print(d)
# defaultdict(<class 'list'>, {'key1': ['value1', 'value2'], 'key2': ['value3', 'value4', 'value5'], 'key3': ['value6', 'value7']})

推荐阅读