我有一個關於this問題的接受答案的問題。python字典,如何轉換它
你能解釋一下爲什麼這個代碼:
[{'type':k, 'items':v} for k,v in res.items()]
做的工作,即它結合項目與同一密鑰列表英寸
我有一個關於this問題的接受答案的問題。python字典,如何轉換它
你能解釋一下爲什麼這個代碼:
[{'type':k, 'items':v} for k,v in res.items()]
做的工作,即它結合項目與同一密鑰列表英寸
你能解釋一下
[{'type':k, 'items':v} for k,v in res.items()]
讓我們把它拆開:
for k,v in res.items()
迭代的res
項,分別給每個鍵和價值k
和v
。{'type':k, 'items':v}
創建一個雙元素字典。第一個元素具有密鑰'type'
和值k
;第二個元素的密鑰爲'items'
,值爲v
。[...]
的作用是將res
中的每個條目轉換爲字典,如步驟2中所述,並將生成的字典存儲在列表中。表達式的括號使其成爲list comprehension。基本上,左邊部分({'type':k, 'items':v}
)針對每個項目進行評估,並將結果製成列表。
res.items
返回字典中每個條目的鍵和值的元組。
再說說輸入res
是{'a': 7, 'b': 9}
(這是映射的字典a
到7
和b
到9
然後,res.items()
是:
[('a', 7), ('b', 9)]
圓括號使一個元組,這基本上是不可變列表。列表理解中的for循環迭代元組元素,並臨時將它們分配給k
和v
:
# First iteration
k = 'a'
v = 7
=> Add {'type': 'a', 'items': 7} to the result
# First iteration
k = 'b'
v = 9
=> Add {'type': 'b', 'items': 9} to the result
現在
,結果列表
[{'type': 'a', 'items': 7}, {'type': 'b', 'items': 9}
[{'type':k, 'items':v} for k,v in res.items()]
這意味着正是它似乎是說:「由(看起來像一本字典:{'type': k, 'items': v}
)的列表,包含在每個k, v
對res.items()
「。
這個問題很差,請澄清。 – Kekoa 2012-02-07 18:52:45