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