Python獲取list中最大或最小的n個數(shù)及其索引方式
求取list中的最大或者最小的幾個數(shù)字可以使用以下方法
方法一
使用深拷貝的方法,copy需要求索引的list,每次求最大或者最小值及其索引,并置相應(yīng)位置的值為0,迭代n次。
代碼如下:
import copy
m = [34,94,35,78,45,67,23,90,1,0]
t = copy.deepcopy(m)
# 求m個最大的數(shù)值及其索引
max_number = []
max_index = []
for _ in range(2):
number = max(t)
index = t.index(number)
t[index] = 0
max_number.append(number)
max_index.append(index)
t = []
print(max_number)
print(max_index)結(jié)果: [94, 90] [1, 7]
該方法適應(yīng)性好,即使數(shù)值有重復(fù)的,也能得到和其數(shù)值對應(yīng)的索引。
方法二
使用heapq包中的方法,當(dāng)所求的最大或最小的n個數(shù)值不重復(fù)時可以直接求出相應(yīng)的數(shù)值和對應(yīng)的索引,當(dāng)有重復(fù)值的時候還是需要借鑒方法一的思路。
無重復(fù)值的代碼
import heapq m = [34,94,35,78,45,67,23,90,1,0] # 求一個list中最大的2個數(shù),并排序 max_number = heapq.nlargest(2, m) # 最大的2個數(shù)對應(yīng)的,如果用nsmallest則是求最小的數(shù)及其索引 max_index = map(m.index, heapq.nlargest(2, m)) print(max_number) # max_index 直接輸出來不是數(shù),使用list()或者set()均可輸出 print(set(max_index))
結(jié)果:
[94, 90]
{1, 7}
有重復(fù)值的代碼
import heapq
m = [9, 8, 8, 6, 6, 5, 4, 2, 2, 0]
max_number = heapq.nlargest(3, m)
max_index = []
for t in max_number:
index = m.index(t)
max_index.append(index)
m[index] = 0
print(max_number)
print(max_index)結(jié)果:
[9, 8, 8] [0, 1, 2]
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Python?itertools模塊中starmap函數(shù)的應(yīng)用
starmap是一個非常有用的函數(shù),它屬于itertools模塊中的一部分,本文將詳細(xì)介紹starmap函數(shù)的作用、用法以及實際應(yīng)用場景,希望對大家有所幫助2024-03-03
python3中celery異步框架簡單使用+守護進程方式啟動
這篇文章主要介紹了python3中celery異步框架簡單使用+守護進程方式啟動,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
python使用PIL和matplotlib獲取圖片像素點并合并解析
這篇文章主要介紹了python使用PIL和matplotlib獲取圖片像素點并合并解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09
Python softmax實現(xiàn)及數(shù)值穩(wěn)定性詳解
這篇文章主要為大家介紹了Python softmax實現(xiàn)及數(shù)值穩(wěn)定性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
PyTorch基于Transformer架構(gòu)的完整文本生成實現(xiàn)方案
PyTorch文本生成代碼模板與解析 本文提供了一個基于Transformer架構(gòu)的完整文本生成實現(xiàn)方案,包含以下核心內(nèi)容: 代碼架構(gòu): 完整實現(xiàn)從數(shù)據(jù)預(yù)處理到模型訓(xùn)練的端到端流程 包含Transformer核心組件,需要的朋友可以參考下2026-04-04

