[英]Find last index of minimum and maximum elements in list python
假設我有這個列表:
A = [3, 4, 3, 5, 7, 665, 87, 665]
當我做A.index(min(A))
時,我得到0
。
而且,當我做A.index(max(A))
時,我得到5
。
我正在尋找一種方法來獲取列表中min
和max
元素的最后一個索引。 即我想得到答案為2
代替0
代表min
數量和7
代替5
代表max
數量
要獲取 list 中最后一次出現的元素的索引,可以從 list 的長度中減去 list 反面的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
列表。
如果您想要列表中最后一個最小值或最大值的索引。 因此,在通過列表獲取最大或最小循環並找到等於最小值或最大值的其他數字之后。 每次您遍歷列表時,請確保您跟蹤當前索引。
您可以通過列表在一個循環中計算最小值以及最小值的最后一個索引:
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
當然,最大值的情況是類似的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.