漆黑天使复活
2021-08-04 12:10
采纳率: 66.7%
浏览 39
已结题

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}
]

有啥好的思路不?

  • 好问题 提建议
  • 收藏

3条回答 默认 最新

  • Nick Peng 2021-08-04 12:23
    已采纳
    
    # 分步方案:
    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)
    
    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • 吃肉的小馒头 2021-08-04 12:26
    
    [{'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)]]
    
    评论
    解决 无用
    打赏 举报
  • CrazyDragon_King 2021-08-04 12:39

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题