按模板将列表映射到字典

时间:2017-07-14 09:25:17

标签: python list dictionary

我得到了一些数据,如

l = ['1', '01.01.2000', 'code1', '2', '01.02.2000', 'code2', etc... ]

我需要将此列表转换为dicts列表,将项目分组3.将值 id,date,code 添加为dict的键

l = [{'id': '1', 'date':'01.01.2000', 'code':'code1'},
     {'id': '1', 'date':'01.01.2000', 'code':'code1'},
     etc...]

我使用此函数将元组中的列表拆分为3个元素

def group(lst, n):
  for i in range(0, len(lst), n):
    val = lst[i:i+n]
    if len(val) == n:
      yield tuple(val)

但不知道如何使用键将每个元组转换为dict

3 个答案:

答案 0 :(得分:2)

简短解决方案:

[{'date': '01.01.2000', 'id': '1', 'code': 'code1'}, {'date': '01.02.2000', 'id': '2', 'code': 'code2'}]

输出:

preaparedstatement

答案 1 :(得分:0)

稍微修改您的代码以使用列表解包:

def group(lst, n):
  dict_list = []    
  for i in range(0, len(lst), n):
    val = lst[i:i+n]
    dic = {}
    dic['id'], dic['date'], dic['code'] = val
    dict_list.append(dic)
  return dict_list

答案 2 :(得分:0)

在这里,您可以使用列表推导的不同方法:

keys = ["id", "date", "code"]
[dict(zip(keys, l[i:i+3])) for i in range(0, len(l), 3)]