2014-08-30 67 views
-1

我有一個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

您可以通過下面的代碼實現這個

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'}] 
+0

@@ MaNKuR:非常感謝。這是我想要做的。它的工作 – 2014-08-30 19:18:01

+0

很高興聽到:) – MaNKuR 2014-08-30 19:26:01

2
>>> dict(zip(('id', 'name', 'grade'), [1, 'stu1', 'A'])) 
{'grade': 'A', 'id': 1, 'name': 'stu1'} 
0

zip是爲此用途而製作的內置功能。

>>> dict(zip(('id', 'name', 'grade'), [1, 'stu1', 'A'])) 
{'grade': 'A', 'id': 1, 'name': 'stu1'} 

如果列表是SI巨大的內存,你可以使用itertools.izip,它具有相同的行爲,但與generator風格。

相關問題