gpt4 book ai didi

python - 将 for 循环转换为字典理解

转载 作者:行者123 更新时间:2023-12-01 02:52:56 24 4
gpt4 key购买 nike

我有一个运行良好的小程序。我试图强制自己审查\分析我的代码,以便尝试使我的代码(和我自己)变得更好一点。

我想知道这一小部分代码是否:

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())}

如果您不想使用作为决定因素(如果键相等),您也可以提供一个,这样您就可以只基于排序在上:

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])])

关于python - 将 for 循环转换为字典理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44533522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com