Python 按模板将列表映射到字典

Python 按模板将列表映射到字典,python,list,dictionary,Python,List,Dictionary,我得到了一些数据列表,比如 l = ['1', '01.01.2000', 'code1', '2', '01.02.2000', 'code2', etc... ] 我需要将此列表转换为目录列表,按3对项目进行分组。添加值id、日期、代码作为dict的键 l = [{'id': '1', 'date':'01.01.2000', 'code':'code1'}, {'id': '1', 'date':'01.01.2000', 'code':'code1'}, etc..

我得到了一些数据列表,比如

l = ['1', '01.01.2000', 'code1', '2', '01.02.2000', 'code2', etc... ]
我需要将此列表转换为目录列表,按3对项目进行分组。添加值id、日期、代码作为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

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

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
简短解决方案:

l = ['1', '01.01.2000', 'code1', '2', '01.02.2000', 'code2']
result = [{'id':l[i], 'date':l[i+1], 'code':l[i+2]} for i in range(0, len(l), 3)]

print(result)
输出:

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

这里有一种使用列表理解的不同方法:

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