2013-11-22 148 views
-4

我需要遍歷結果產生DICS的這種結構清單列表:迭代和創建類型的字典

items = [{'clients': [ 
     {'value': i[4], 'first_name': i[1], 'last_name': i[3]}, 
     {'value': i[4], 'first_name': i[1], 'last_name': i[3]} 
     ] 
}] 

for i in results: 
     items = ? 

編輯

[0] => tuple(5) 
     [0] => int(396043) 
     [1] => str(45) "First name" 
     [2] => int(532) 
     [3] => str(45) "Second name" 
     [4] => float(1.0) 
[1] => tuple(5) 
     [0] => int(374286) 
     [1] => str(24) "First name" 
     [2] => int(537) 
     [3] => str(24) "Second name" 
     [4] => float(1.0) 

我如何能做到這一點?

+2

結果是什麼? – tMJ

+0

@tMJ是一個tupple – user2983258

+2

@ user2983258:*什麼*確切的元組?您需要編輯您的問題並添加更多詳細信息。這裏沒有足夠的繼續。 –

回答

0

您可以使用列表解析生成results根據每個元組的字典:

items = [{ 
    'clients': [{'value': i[4], 'first_name': i[1], 'last_name': i[3]} for i in results] 
}] 

你也可以使用元組分配的循環,產生更有意義的名稱

items = [{ 
    'clients': [{'value': value, 'first_name': first, 'last_name': last} 
       for _, first, _, last, value in results] 
}] 

你也可以在顯式循環中做到這一點,但列表理解會更快。顯式循環版本:

clients = [] 
items = [{'clients': clients}] 
for _, first, _, last, value in results: 
    clients.append({'value': value, 'first_name': first, 'last_name': last}) 

這裏_是,我們忽略了一個循環變量使用約定的名稱。它只是表示我們不會再使用_,但需要一個分配目標。

+0

你的答案是完美的,所以至少這個問題是或多或少清楚。男人,有時我無法理解。這個問題很難得到-4?耶穌基督.. – user2983258

+0

@ user2983258:目前還不清楚你試圖產生的預期產出的部分。我不得不猜測它是'items [0] ['clients']'中的字典列表。對於我們所知的一切,例如,可能需要生成'items'列表。 –

+0

@ user2983258:換句話說,我很幸運,我猜對了。 tMJ刪除了他的答案,但它回答了你的問題的不同解釋。我想他覺得我的猜測更準確,但他的解釋確實如此有效。 –