我有一个for循环,它构造了一些像这样的结果
result =[[1,stu1,grade A],[2,stu2,grade B]]
我想像这样转换它
result = [id:1,name:stu1,grade: grade A],[id:2, name: stu2, grade:grade B]
其中id,name,grade是表的列名。我有这样的循环
result = []
for stu_details in stu.details:
result.append([stu_details.id,stu_details.name,stu_details.grade])
如何将结果与列名一起返回?有谁可以帮忙。
答案 0 :(得分:2)
>>> dict(zip(('id', 'name', 'grade'), [1, 'stu1', 'A']))
{'grade': 'A', 'id': 1, 'name': 'stu1'}
答案 1 :(得分:0)
zip
是为此用途而制作的内置函数。
>>> dict(zip(('id', 'name', 'grade'), [1, 'stu1', 'A']))
{'grade': 'A', 'id': 1, 'name': 'stu1'}
如果你列出的内存很大,你可以使用itertools.izip
,它具有相同的行为但是generator样式。
答案 2 :(得分:0)
您可以通过以下代码
来实现此目的result =[[1,'stu1','grade A'],[2,'stu2','grade B']]
title = ('id', 'name', 'grade')
map(lambda x: dict(zip(title, x)), result)
结果将是
[{'grade': 'grade A', 'id': 1, 'name': 'stu1'},
{'grade': 'grade B', 'id': 2, 'name': 'stu2'}]