Найти последний индекс минимальных и максимальных элементов в списке python

#python #list #indexing #max #minimum

#python #Список #индексирование #макс #минимальный

Вопрос:

Допустим, у меня есть этот список:

 A = [3, 4, 3, 5, 7, 665, 87, 665]
 

Когда я это делаю A.index(min(A)) , я получаю 0 .

И, когда я это делаю A.index(max(A)) , я получаю 5 .

Я ищу способ получить последний индекс элемента min and max в списке. т.Е. Я хочу получить ответ как 2 вместо 0 for min number, так и 7 вместо 5 for max number

Комментарии:

1. почему? Вы запросили индекс минимального и максимального значения, и он у вас есть…

2. Вы имеете в виду, что хотите получить индекс второго 3 и 665 ?

Ответ №1:

Чтобы получить индекс последнего появления элемента в списке, вы можете вычесть значение list.index(element) на обратной стороне списка из длины списка.

Ниже приведен пример кода для получения индекса последнего самого высокого и самого низкого числа в списке:

 >>> A = [3,4,3,5,7,665,87,665]

# For min. number
>>> len(A) - A[::-1].index(min(A)) - 1
2

# For max. number
>>> len(A) - A[::-1].index(max(A)) - 1
7
 

В приведенном выше коде A[::-1] A список будет перевернут.

Ответ №2:

Вы можете вычислить минимальный, а также последний индекс минимального значения за один цикл по списку:

     last_idx = None
    min_value = None
    for idx, value in enumerate(l):
        if min_value is None or value <= min_value:
            last_idx = idx
            min_value = value

    print(last_idx)  # 2
    print(min_value)  # 3
 

Аналогично, вы также можете вычислить все индексы минимального значения, сохранив индексы в коллекции, такой как, например, набор:

     idces = set()
    min_value = None
    for idx, value in enumerate(l):
        if min_value is None or value == min_value:
            idces.add(idx)
            min_value = value
        elif value < min_value:
            idces = {idx}
            min_value = value

    print(idces)  # {0, 2}
    print(min_value)  # 3
 

Конечно, случай с максимумом аналогичен.

Ответ №3:

Если вам нужен индекс последнего минимального или максимального значения в списке. Итак, после получения максимального или минимального цикла по списку и найдите другие числа, равные минимальному или максимальному. Каждый раз, когда вы просматриваете список, убедитесь, что вы отслеживаете текущий индекс.