我有一個詞典列表,我想用它來創建另一個詞典列表,稍作修改。Python:使用列表理解創建詞典列表
這就是我想做的事:
entries_expanded[:] = [{entry['id'], myfunction(entry['supplier'])} for entry in entries_expanded]
所以我結束了字典的另一個列表,只需用一個條目改變。
上述語法已損壞。我該怎麼做我想要的?
請讓我知道我是否應該展開代碼示例。
我有一個詞典列表,我想用它來創建另一個詞典列表,稍作修改。Python:使用列表理解創建詞典列表
這就是我想做的事:
entries_expanded[:] = [{entry['id'], myfunction(entry['supplier'])} for entry in entries_expanded]
所以我結束了字典的另一個列表,只需用一個條目改變。
上述語法已損壞。我該怎麼做我想要的?
請讓我知道我是否應該展開代碼示例。
要爲每個字典創建一個新的字典,您需要重新鍵:
entries_expanded[:] = [{'id':entry['id'], 'supplier':myfunction(entry['supplier'])} for entry in entries_expanded]
(如果我已經理解你正在嘗試做的是正確的,無論如何)
是的。謝謝! – AP257 2010-11-12 10:18:55
這不是你想要的嗎?
entries_expanded[:] = [
dict((entry['id'], myfunction(entry['supplier'])))
for entry in entries_expanded
]
你可以把它理解爲創建的元組,然後列表的理解,使詞典發電機:
entryiter = ((entry['id'], entry['supplier']) for entry in entries_expanded)
tupleiter = ((id, myfunction(supplier)) for id, supplier in entryiter)
entries_expanded[:] = [dict(t) for t in tupleiter]
或者,它是作爲對方的回答表明:
entryiter = ((entry['id'], entry['supplier']) for entry in entries_expanded)
tupleiter = ((id, myfunction(supplier)) for id, supplier in entryiter)
entries_expanded[:] = [
dict((('id', id), ('supplier', supplier)))
for id, supplier in tupleiter
]
你正在使用哪個版本的Python? – 2010-11-11 20:31:42
你能提供一個輸入數據樣本以及你期望輸出的樣子嗎? – 2010-11-11 20:33:06