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 函式在此問題中的用法。