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
长度就退出循环。