在字典中的索引范围内寻找最小值 python

Looking for minimum between a range of index in a dictionary python

我正在查找字典中索引范围内的最小值;例如:

A = {1: -3, 2: -5, 3: 4, 5: 12, -34: 23, 64: 32}

我要查找:

min(A[2..5]) = min(A[2] A[3] A[4]A [5]) = -5

这可能吗?

Python list 不支持通过索引器列表进行索引。有几个解决方案可以解决这个问题。

你知道密钥存在的地方

您可以使用itemgetter和序列解包:

from operator import itemgetter

A = {1: -3, 2: -5, 3: 4, 5: 12, -34: 23, 64: 32}

res = min(itemgetter(*[2, 3, 5])(A))

# -5

密钥可能不存在

您可以使用 range 对象来指定键的范围。 listset 也可以。这里我们将生成器表达式提供给 min:

res = min(v for k, v in A.items() if k in range(2, 6))

# -5