gpt4 book ai didi

python - 如果键存在,则按键对 python 字典列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:55 26 4
gpt4 key购买 nike

我有一个这样的字典列表:

[{"foo" : "bar", "myKey" : "one"}, 
{"foo" : "bar", "myKey" : "two"},
{"foo" : "bar", "yourKey" : "three"}]

如果字典中存在键,我想对其进行排序。

featured = sorted(filesToWrite, key=lambda k: k["myKey"])

如果 "myKey" 不存在,这将不起作用。 编辑: 如果字典中不存在 myKey,我希望它出现在列表的末尾。

我可以手动遍历列表并自己完成,但我确信有一种 pythonic 方式可以在不执行所有这些操作的情况下实现我的目标。

最佳答案

查看 dict.get :

featured = sorted(filesToWrite, key=lambda k: ("myKey" not in k, k.get("myKey", None)))

输出:

[{'foo': 'bar', 'myKey': 'one'}, {'foo': 'bar', 'myKey': 'two'}, {'yourKey': 'three', 'foo': 'bar'}]

魔法发生在 key 中:

("myKey" in k, k.get("myKey", None)

这是一个包含两项的元组,例如:

(True, "one")

第一个元素是 True/False 取决于键是否丢失(True 在 False 之后因此 not),第二个元素是所述键的值,如果它存在。如果没有,。 (这个论点可以跳过,但我把它包括在内是为了明确)

关于python - 如果键存在,则按键对 python 字典列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446278/

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