我有一个很好的小程序。我试图强迫自己审查\分析我的代码,以便尝试使我的代码(和我自己)更好一点。
我想知道这段代码是否只有:
temp2 = {}
for key in sorted(temp1.keys()):
temp2[key] = temp1[key]
无法重写为词典理解。
由于我缺乏经验,我无法“转换” 这让人理解。
所有循环都采用字典temp1
,对其进行排序并将新排序的key:value
对放入temp2
。
正如我上面所说,整个过程都是按原样运作,但我正在努力学习 发现我可以改进的模式。
答案 0 :(得分:2)
直接将其翻译成词典理解很容易:
temp2 = {key: value for key, value in sorted(temp1.items())}
如果您不想使用value
作为决胜局,如果密钥相等,您还可以提供key
,因此您只需根据{{1}进行排序}:
key
尽管词典在python-3.6中被“排序”并不意味着你应该依赖它(有序性正式只是副作用!)。最好使用temp2 = {key: value for key, value in sorted(temp1.items(), key=lambda x: x[0])}
并保持安全:
OrderedDict