Python - 元組列表中的最小值


手頭的問題是使用 Python 程式語言從給定的元組列表中找到最小值。因此,基本上,每當我們談論查詢最小值時,我們都會使用 Python 內建函式中定義的 min 函式。在本文中,我們將瞭解從元組列表中獲取最小值的幾種不同方法。

什麼是元組列表或元組列表?

元組列表,我們也可以稱之為元組列表,是 Python 程式設計中的一種資料結構。元組列表包含多個元組作為其專案。或者我們可以說列表中的每個元素都是一個元組。為了更好地理解,我們可以檢視下面的示例 -

list_of_tuple = [('x', 4), (‘y', 8), ('z', 12)]

因此,在這裡我們看到了什麼是元組列表以及它在 Python 中的外觀。上面的示例包含三個元組。每個元組內都有兩個專案,一個是字元,另一個是整數。我們可以使用索引訪問這些專案。例如 -

print(list_of_tuple[1])
#Output  ('y', 8)

因此,藉助元組列表,我們可以執行元組和列表的操作,這是一種操作和儲存資料的便捷方式。

理解問題

問題陳述是從給定的元組列表中找到最小值。正如我們已經看到什麼是元組列表,因此為了理解給定的問題,我們將看一個例子。假設我們得到一個如下所示的元組列表 - [('w', [2,4]), ('x', [4,8]), ('y', [8,12]), (‘z’, [1,2])],此示例中的最小值為 - [('w’, 2), ('x', 4), ('y', 8), (‘z’,1)]。

使用 for 迴圈和 min 函式

在這種方法中,我們將使用 for 迴圈和 min 函式從給定的元組列表中查詢最小項。在這種方法中,我們將建立一個包含列表的元組列表,在這個列表中我們將有元組。我們將初始化一個空陣列來儲存結果。然後,藉助迴圈,我們將遍歷每個列表並找到最小數字,然後將其新增到或附加到我們最初宣告的陣列中。

演算法

  • 步驟 1 - 因此,首先我們將定義一個元組列表並將其命名為 tupleList。此變數將包含列表,並且在此列表中有多個元組。並且在每個元組中都有另一個包含列表。我們的任務是在此列表中找到最小值。

  • 步驟 2 - 在上述步驟之後,我們將建立一個物件來包含結果元組列表並將其命名為 min_values。

  • 步驟 3 - 然後我們將初始化一個迴圈來迭代元組列表。在此迴圈中,我們將對元組內的每個列表使用 min 函式,並將最小值儲存在 min_val 中。

  • 步驟 4 - 之後,我們將使用 append 方法將所有 min_val 附加到 min_values 物件中。然後列印 min_values 的值。

示例

tupleList = [('X', [14, 12, 25]), ('Y', [21, 32, 24]), ('Z', [45, 30, 16])]

# Find the minimum value in each list
min_values = []
for k, l in tupleList:
   min_val = min(l)
   min_values.append((k, min_val))

#The input tuple list
print("Input tuple list: " + str(tupleList))
# printing the minimum values
print("The minimum values are: " + str(min_values))

輸出

Input tuple list: [('X', [14, 12, 25]), ('Y', [21, 32, 24]), ('Z', [45, 30, 16])]
The minimum values are: [('X', 12), ('Y', 21), ('Z', 16)]

複雜度

使用這種方法從給定的元組列表中查詢最小值的時間複雜度為 O(n*m),其中 n 是給定 tupleList 的長度,m 是元組內列表的最大大小。

使用 min 和 lambda 函式

在這種方法中,我們將使用 Python 程式語言的兩個內建函式,第一個是 min,第二個是 lambda 函式。因此,在第一步中,定義一個函式來從給定的元組列表中查詢最小值。之後,我們將使用 min 函式獲取最小值。然後使用 lambda 函式,它是一個匿名函式來定義單行函式而不給出函式的名稱。

演算法

  • 步驟 1 - 首先,我們將使用 def 關鍵字定義一個函式,並將此函式命名為 getMinValue,在此函式中,我們將採用元組列表作為引數 t_list。

  • 步驟 2 - 定義函式後,我們將最小值儲存在 min_item 變數中,並使用 min 函式和 lambda 函式初始化其值。在 lambda 函式中,我們將為元組列表中的每個值定義鍵。

  • 步驟 3 - 現在我們將返回在步驟二中找到的最小值。並列印所需的值。

示例

#Function to find the minimum value from tuple list
def getMinValue(t_list):
   min_item = min(t_list, key=lambda x: x[0])
   return min_item[0]

#initialize the tuple list
t_list = [(12, 18), (16, 13), (14, 19)]
min_item = getMinValue(t_list)
print(f"Minimum value in the given tuple list is: {min_item}")

輸出

Minimum value in the given tuple list is: 12

複雜度

使用 min 和 lambda 等內建函式從元組列表中查詢最小值的時間複雜度為 O(n),其中 n 是給定輸入元組列表的大小。因為我們使用了 min 函式來迭代元組列表的專案,並且從列表中訪問最小值需要 n 次時間。

結論

結論是,我們已經成功地實現了程式碼,使用不同的方法從元組列表中獲取最小值,並查看了所有方法的時間複雜度。我們還看到了 lambda 函式在此問題中的用法。

更新於: 2023年10月16日

138 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告