使用Python查詢列表中最大項的索引


在Python中,最大項的索引指的是列表中一個特定的索引,該索引對應的項的值大於列表中的所有其他元素。Python中有一些內建函式,例如`len()`、`max()`、`series()`、`idxmax()`和`index()`,可以用來查詢列表中最大項的索引。

讓我們來看一個例子。

給定的列表:[61, 12, 4, 5, 89, 7]

所以,最大值89的索引是4。

語法

以下語法在示例中使用:

len()

`len()`是Python中的一個內建方法,返回物件的長度。

max()

`max()`函式是Python中的一個內建函式,用於查詢具有最大值或在迭代中的元素。

Series()

這個內建函式由一個一維陣列定義,可以儲存任何型別的資料,例如整數、字串、浮點數等。

idxmax()

此內建函式返回列表中具有最大值的索引序列。

index()

`index()`是Python中的一個內建函式,可用於在列表中搜索元素並返回元素的位置。

使用while迴圈

該程式使用while迴圈遍歷迴圈,並使用名為`len()`的方法檢查條件,該方法用於確定輸入列表的長度。

示例

在下面的示例中,程式首先將輸入列表儲存在變數`marks`中。然後將兩個變數`maximum_val`和`maximum_index`分別初始化為列表中的第一個值及其索引[0]。然後程式將變數`i`初始化為1用於迴圈迭代。現在使用while迴圈遍歷列表。然後,對於每次迭代,使用if語句檢查列表中的當前值是否大於當前最大值。如果是,則將`maximum_val`變數更新為當前值,將`maximum_index`變數更新為當前索引,並將迴圈變數`i`遞增1。最後,我們使用變數`maximum_val`和`maximum_index`列印結果。

marks = [1086, 1044, 1221, 3669, 1000, 2843]
# initialize maximum value and index
maximum_val = marks[0]
maximum_index = 0
# Initialize loop variable
i = 1
# iterate through the list using while loop
while i < len(marks):
    if marks[i] > maximum_val:
        maximum_val = marks[i]
        maximum_index = i
    i += 1
print(f"Maximum Value: {maximum_val}")
print(f"Maximum Index position: {maximum_index}")

輸出

Maximum Value: 3669
Maximum Index position: 3

使用max()函式

該程式使用內建函式`max()`來查詢Python列表中的最大項。

示例

在下面的示例中,程式首先將輸入列表儲存在變數`list1`中。然後使用內建函式`max()`,該函式接受`list1`作為引數,以查詢列表中的最大值並將其儲存在變數`max_number`中。最後,使用變數`max_number`列印輸出。

list1 = [3, 2, 8, 5, 10, 6]
max_number = max(list1);
print("The largest number is:", max_number)

輸出

The largest number is: 10

使用Series()和idxmax()函式

該程式使用Pandas模組提供其內建函式`Series()`和`idxmax()`來查詢列表中最大項的索引。

示例

在下面的示例中,我們將首先匯入名為pandas的模組並將其引用為pds,這將有助於設定與其相關的內建函式。然後建立輸入列表並將其儲存在變數`Age`中。接下來,使用內建函式`Series()`和`idxmax()`,它將查詢整數形式的列表序列並返回列表中的最大索引項。

import pandas as pds
# Consider the list of integers
Age = [39, 126, 40, 50, 77, 87]
# Using pandas.Series().idxmax()
print("Maximum Index position from the list: ",pds.Series(Age).idxmax())  

輸出

Maximum Index position from the list:  1

使用index()函式

該程式使用內建函式`index()`以及`max()`來返回給定列表中最高值索引。

示例

在下面的示例中,程式首先將輸入列表儲存在變數`Score`中。然後使用帶變數`Score`的內建函式`index()`來查詢項的位置,它接受內建函式`max()`作為引數,該函式返回列表中的最大項。

Score = [41, 35, 59, 78, 99, 100, 33]
print("Maximum index present in the list:", Score.index(max(Score)))

輸出

Maximum index present in the list: 5

使用簡單的for迴圈和if語句

該程式使用簡單的for迴圈遍歷列表,並使用if語句檢查列表中的最大索引項。

示例

在下面的示例中,程式從名為`max_num()`的函式開始。在函式內部,輸入列表儲存在變數`num`中。然後在變數`max_value`中使用索引為0的變數`num`,即`num[0]`,這將有助於檢查if語句中的條件。接下來,使用for迴圈,變數`a`遍歷列表`num`,並使用if語句使用`>`運算子設定最大項的條件,並在變數`max_value`中返回列表中的最大項。然後,它將使用`index()`和變數`num`來查詢最大索引並將其儲存在變數`max_index`中。最後,我們透過呼叫名為`max_num()`的函式來列印結果。

def max_num():
    num = [120, 50, 99, 102, 11, 91]
    max_value = num[0]
    for a in num:
        if a > max_value:
            max_value = a
    max_index = num.index(max_value)
    print("The maximum value from the list is:", max_value)
    print("The index of the max value is:", max_index)
max_num()

輸出

The maximum value from the list is: 120
The index of the max value is: 0

結論

我們看到上面的輸出表示列表中最大數字及其索引位置。有一些新的方法可以解決這個問題,例如`idxmax()`和`series()`,它們定義一維陣列來儲存任何型別的資料並返回具有最高值的索引序列。這種型別的程式通常用於解決基於檔案記錄系統的問題以及過濾資料庫中的最大值。

更新於:2023年8月14日

12K+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.