Python獲取list中最大或最小的n個(gè)數(shù)及其索引方式
求取list中的最大或者最小的幾個(gè)數(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個(gè)最大的數(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ù)值對(duì)應(yīng)的索引。
方法二
使用heapq包中的方法,當(dāng)所求的最大或最小的n個(gè)數(shù)值不重復(fù)時(shí)可以直接求出相應(yīng)的數(shù)值和對(duì)應(yīng)的索引,當(dāng)有重復(fù)值的時(shí)候還是需要借鑒方法一的思路。
無(wú)重復(fù)值的代碼
import heapq m = [34,94,35,78,45,67,23,90,1,0] # 求一個(gè)list中最大的2個(gè)數(shù),并排序 max_number = heapq.nlargest(2, m) # 最大的2個(gè)數(shù)對(duì)應(yīng)的,如果用nsmallest則是求最小的數(shù)及其索引 max_index = map(m.index, heapq.nlargest(2, m)) print(max_number) # max_index 直接輸出來(lái)不是數(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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python輕松實(shí)現(xiàn)提取視頻音頻并去除靜音片段
在處理視頻素材時(shí),我們常常需要提取其中的音頻,并且希望去除冗長(zhǎng)的靜音部分,借助Python的幾個(gè)優(yōu)秀庫(kù),我們可以快速實(shí)現(xiàn)這一需求,下面我們就來(lái)看看具體實(shí)現(xiàn)方法吧2025-10-10
詳解Python?itertools模塊中starmap函數(shù)的應(yīng)用
starmap是一個(gè)非常有用的函數(shù),它屬于itertools模塊中的一部分,本文將詳細(xì)介紹starmap函數(shù)的作用、用法以及實(shí)際應(yīng)用場(chǎng)景,希望對(duì)大家有所幫助2024-03-03
python3中celery異步框架簡(jiǎn)單使用+守護(hù)進(jìn)程方式啟動(dòng)
這篇文章主要介紹了python3中celery異步框架簡(jiǎn)單使用+守護(hù)進(jìn)程方式啟動(dòng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
python使用PIL和matplotlib獲取圖片像素點(diǎn)并合并解析
這篇文章主要介紹了python使用PIL和matplotlib獲取圖片像素點(diǎn)并合并解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
Python softmax實(shí)現(xiàn)及數(shù)值穩(wěn)定性詳解
這篇文章主要為大家介紹了Python softmax實(shí)現(xiàn)及數(shù)值穩(wěn)定性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
PyTorch基于Transformer架構(gòu)的完整文本生成實(shí)現(xiàn)方案
PyTorch文本生成代碼模板與解析 本文提供了一個(gè)基于Transformer架構(gòu)的完整文本生成實(shí)現(xiàn)方案,包含以下核心內(nèi)容: 代碼架構(gòu): 完整實(shí)現(xiàn)從數(shù)據(jù)預(yù)處理到模型訓(xùn)練的端到端流程 包含Transformer核心組件,需要的朋友可以參考下2026-04-04

