gpt4 book ai didi

python - 对字典键的子集进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 07:52:33 25 4
gpt4 key购买 nike

我如何根据 A 的值对作为字典 A 的子集的以下列表 B 进行排序?

A = {1: 10, 2:20, 3: 15, 4: 1}
B = [1, 3, 4]

我的解决方案应该是

B = [4, 1, 3]

自从

A[4] < A[1] < A[3]

最佳答案

使用A.get作为key

A = {1: 10, 2:20, 3: 15, 4: 1}
B = [1, 3, 4]

>>> sorted(B, key=A.get)
[4, 1, 3]

请注意,您可以将默认值设置为.get 方法的参数,这样,如果您的字典中不存在给定的键,您可以自己设置一个位置(例如最后一个位置或第一个)。例如:

B = [1, 3, 4, 11]
>>> sorted(B, key=lambda k: A.get(k, -1))
[11, 4, 1, 3]

>>> sorted(B, key=lambda k: A.get(k, float('inf')))
[4, 1, 3, 11]

或者,正如@jpp 强调的那样,

>>> sorted(B, key=A.__getitem__)

如果您希望在引用的键不存在时引发 KeyError

关于python - 对字典键的子集进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52901077/

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