Python – 每條記錄值列表中的最小值


題目要求我們找到每條記錄值列表中的最小值。因此,在本文中,我們將學習查詢每條記錄中最小值的不同方法。

理解問題

給定的問題要求我們找到每個子陣列的最小值。例如:假設我們有一個數組 `[[8,10,12], [12, 14, 16], [17, 18, 19]]`,在這個例子中,我們可以看到每個子陣列的最小值分別是 8、12、17,因為這些陣列是有序的。因此,所需的結果應該是 `[8, 12, 17]`。但是,我們將必須從每個未排序的子陣列中找到最小值。為了解決這個問題,我們將使用 Python 的不同方法和技術。

上述問題的邏輯

為了解決和理解給定的問題,我們首先將找到給定陣列中的最小值。為了找到給定陣列中的最小值,我們可以使用 Python 中的內建方法 `min` 函式來獲取列表或陣列中的最小值。

在第二種方法中,我們將使用 for 迴圈來查詢並附加給定子陣列的最小值。

在第三種方法中,我們將使用 `map` 方法和 `min` 函式來獲得所需的結果。

演算法 - 在陣列中使用 min 函式

  • 步驟 1 - 在第一步中,我們需要建立一個名為 `min_in_record` 的函式。此函式還接受一個名為 `record` 的引數,該引數記錄專案。

  • 步驟 2 - 由於我們已經定義了函式,現在我們將使用 `min` 函式來查詢陣列中存在的最小值並將其返回以顯示在輸出中。

  • 步驟 3 - 現在,我們將使用 `print` 方法在控制檯上顯示所需的結果。

示例

def min_in_record(record):
   # Return the minimum value
   return min(record)
record = [[81,102,123], [124, 145, 166], [177, 188, 199]]

print("The minimum value found in the record - ", min_in_record(record))

輸出

The minimum value found in the record -  [81, 124, 177]

演算法 - 使用 for 迴圈

  • 步驟 1 - 由於我們必須在這個演算法中使用 for 迴圈來查詢每個子陣列中的最小值。所以首先我們將初始化一個包含子陣列的陣列,並將其命名為 `record`。

  • 步驟 2 - 定義陣列後,我們需要初始化一個名為 `min_items` 的空陣列塊。此陣列將儲存上述陣列中每個子陣列的最小值。

  • 步驟 3 - 現在,我們將使用 for 迴圈遍歷給定的輸入陣列。在這個迴圈內,我們將首先使用 `min` 函式獲取每個子陣列的最小值,並將該值儲存在一個名為 `min_item` 的單獨變數中。

  • 步驟 4 - 在每個子陣列中找到 `min_item` 後,我們將這些值附加到上面建立的陣列中以儲存最小值。

  • 步驟 5 - 在最後一步中,我們將列印 `min_items` 的值。

示例 - 使用 for 迴圈

record = [[81,102,123], [124, 145, 166], [177, 188, 199]]

#initialize an empty array to store the minimum values
min_items = []

#Iterate the array items
for rec in record:
   min_item = min(rec)
   min_items.append(min_item)
#Print the required result
print(min_items)

輸出

[81, 124, 177]

演算法 - 使用 map 函式

  • 步驟 1 - 在這個演算法中,我們將使用 `map` 函式,所以首先我們將定義一個包含子陣列的陣列,並將其命名為 `record`。

  • 步驟 2 - 定義陣列後,我們將使用 `map` 函式來對映陣列中存在的所有專案,並藉助 `min` 函式,我們將獲得每個子陣列的最小值,並在獲得最小元素後,我們將使用 Python 中的 `list` 關鍵字將其轉換為列表。將結果儲存在 `min_items` 變數中。

  • 步驟 3 - 在最後一步中,我們將使用 `min_items` 列印結果。

示例 - 使用 map 函式

#Initialize the array having subarrays
record = [[81,102,123], [124, 145, 166], [177, 188, 199]]
#Find the list of min items from the array
min_items = list(map(min, record))

print(min_items)

輸出

[81, 124, 177]

複雜度

查詢每個記錄值列表中最小值的時間複雜度為 O(n * m),其中 n 是給定陣列的長度,m 是子陣列的長度。由於所有方法都迭代給定陣列的專案 n * m 次,因此結果複雜度為 O(n * m)。上述演算法的空間複雜度為 O(n),因為主陣列的大小為 n,我們為每個子陣列儲存最小值。

結論

因此,結論是,我們已經成功地建立了使用 Python 以不同方式獲取每條記錄中最小值的方法。我們使用了 Python 的各種內建方法,例如 `min`、`map`、`append`,以及 for 迴圈。

更新於:2023年10月16日

74 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.