python 序列 转 字典 ,每三个序列,转成一个字典

list=[a,b,c,d,e,f,g,h,i,j,k] 数量时3的倍数

要转成如下一个序列字典,每3个list中的元素组成一个字典的新序列

dic=[
{city:a,province:b,county:c},
{city:e,province:f,county:g},
{city:i,province:j,county:k}
]

有啥好的思路不?


# 分步方案:
a_list=['a','b','c','d','e','f','g','h','i','j','k', 'l'] 
new_list = [a_list[y:y+3] for y in range(0, len(a_list), 3)]

result = []
for x in new_list:
    result.append(dict(city=x[0], province=x[1], county=x[2]))

print(result)

# 合并方案:
res = [dict(city=x[0], province=x[1], county=x[2]) for x in [a_list[y: y+3] for y in range(0, len(a_list), 3)]]
print(res)

[{'city':j[0], 'province':j[1], 'county':j[2]} for j in [lst[i*3:(i+1)*3] for i in range(len(lst)//3)]]

先定义一个索引index,初始化为0。
使用一个死循环,每次向dic中添加一个字典对象。
然后索引加3,如果索引超出list
长度就退出循环。
img