1
我使用Python 3.4,並且正在測試字典理解。Python字典理解與循環之間的區別
比方說,我有以下代碼:
listofdict = [{"id":1, "title": "asc", "section": "123"},{"id":2, "title": "ewr", "section": "456"}]
titles1 = []
titles2 = []
titles1.append({r["section"]: r["title"] for r in listofdict})
print("titles1 = " + str(titles1))
for r in listofdict:
section = r["section"]
title = r["title"]
titles2.append({section: title})
print("titles2 = " + str(titles2))
我認爲這兩種方法應該給我同樣的結果,但我得到,而不是執行以下操作:
titles1 = [{'456': 'ewr', '123': 'asc'}]
titles2 = [{'123': 'asc'}, {'456': 'ewr'}]
titles2是我真正想要的,但我想用字典理解來做到這一點。
什麼是寫字典理解的正確方法?
如果你明白究竟如何理解(任何種類的)映射到'list.append' /'set.add' /'dict [...] ... ...'/'yield'的顯式循環,這樣調試代碼更容易:只需將其轉換爲顯式循環並看看它是你想要的。關於[List Comprehensions](https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions)的教程部分實際上很好地解釋了它。 – abarnert