在字典中的索引范围内寻找最小值 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
对象来指定键的范围。 list
或 set
也可以。这里我们将生成器表达式提供给 min
:
res = min(v for k, v in A.items() if k in range(2, 6))
# -5
我正在查找字典中索引范围内的最小值;例如:
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
对象来指定键的范围。 list
或 set
也可以。这里我们将生成器表达式提供给 min
:
res = min(v for k, v in A.items() if k in range(2, 6))
# -5