Как найти индекс элемента в списке, который является минимальным в подсписке этого списка в Python? - PullRequest
0 голосов
/ 04 ноября 2018

Предположим, у меня есть список Python:

x = [3,6,4,8,1,9]

и я хочу найти индекс элемента в списке, который является минимальным значением внутри подсписка (скажем, от индекса 2 до 4 ).

Итак, я хочу взять подсписок x[2:5] и получить индекс минимального элемента (в данном случае x[4]).

Как вернуть индекс 4 в таком случае? Если я использую np.argmin () в подсписке, он вернет индекс в соответствии с подсписком (в этом случае np.argmin (x [2: 5]) вернет 2, что правильно в соответствии с подсписком).

Я не хочу использовать несколько условий if-else. Как быстро получить этот индекс?

Ответы [ 3 ]

0 голосов
/ 04 ноября 2018

Вы также можете найти минимум чисел между порогом:

>>> x = [3,6,4,8,1,9]
>>> start, end = 2, 5
>>> min((e, i) for i, e in enumerate(x) if start <= i < end)[1]
4

Или увеличение индекса конечного результата:

>>> min((e, i) for i, e in enumerate(x[start:end]))[1] + start
4
0 голосов
/ 04 ноября 2018

Я думаю, что этот лайнер подойдет для вашего случая.

x.index(min(x[2:5]))

Вы также можете заменить 2 и 5 на некоторые переменные. (для индекса от n до m -> (arr [n: m + 1]))

0 голосов
/ 04 ноября 2018

Просто добавьте индекс, с которого начинается подсписок, и вы получите исходный индекс:

x = [3,6,4,8,1,9]
subl_start = 2
subl_end = 5

ind_min = np.argmin(x[subl_start: subl_end]) + subl_start
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...