Ищем минимум между диапазоном индекса в словаре питона - PullRequest
0 голосов
/ 05 июня 2018

Я ищу минимум между диапазоном индекса в словаре;например:

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

Возможно ли это?

1 Ответ

0 голосов
/ 05 июня 2018

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 для указания диапазона ключей.A list или set тоже будет работать.Здесь мы передаем выражение генератора в min:

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

# -5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...