【发布时间】:2014-03-02 07:37:53
【问题描述】:
所以给出一个列表:
o = [1,2,4,6]
还有一本字典:
f = {1:10, 2:5, 3:1, 4:3, 5:7, 6:9}
在 f 中找到与 f 中的最小值相关联的键的最有效方法是什么,其中该键也是列表 o 的成员?
使用上面的列表 (o) 和字典 (f),我将寻找键 4,而键 3 与值 1 和更低的值相关联,3 不是列表 o 的成员。
目前我正在创建要检查的密钥对子集的字典,然后使用 min 获取值:
f_temp = dict((x,f[x]) for x in o)
current = min(f_temp, key=f_temp.get)
这确实有效,但创建新字典似乎效率低下。
这里使用 python 2.6,因此使用字典理解的 dict 语法。
【问题讨论】:
-
一种更有效的方法可能是创建元组列表而不是字典。
-
在您的示例中,o 的每个元素都是 f 中的一个键。总是这样吗?
-
StephenTG:5 和 3 怎么样?
-
@hivert 5 在 f 中,但不在 o 中。我在问 o 中是否有任何东西不在 f 中。
-
@hivert o 中永远不会有任何不在 f 中的东西。
标签: python dictionary min