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 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告