[英]convert for loop into dictionary comprehension
我有一個很好的小程序。 我試圖強迫自己查看\\分析我的代碼,以使我的代碼(和我自己)稍微好一點。
我想知道這小部分代碼:
temp2 = {}
for key in sorted(temp1.keys()):
temp2[key] = temp1[key]
不能被重寫為詞典理解。
主要是由於我非常缺乏經驗,所以我無法將其“轉化”為理解力。
循環所要做的就是將字典temp1
排序,然后將新排序的key:value
對放入temp2
。
如前所述,整個過程都是一樣的,但是我正在嘗試學習可以改進的發現模式。
將其直接轉換為字典理解很容易:
temp2 = {key: value for key, value in sorted(temp1.items())}
如果您不想在鍵相等的情況下將該value
用作平局決勝局,則還可以提供一個key
這樣您就只能基於該key
排序:
temp2 = {key: value for key, value in sorted(temp1.items(), key=lambda x: x[0])}
即使字典在python-3.6中是“有序的”,也不意味着您應該依賴它(有序性在官方上只是副作用!)。 最好使用OrderedDict
並保持安全:
from collections import OrderedDict
temp2 = OrderedDict([(key, value) for key, value in sorted(temp1.items(), key=lambda x: x[0])])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.