Python - 每个记录值列表中的最小值
问题陈述说我们必须找到每个记录值列表中存在的最小值。因此,在本文中,我们将看到查找每个记录中最小值的不同方法。
理解问题
在给定的问题中,我们需要找到每个子数组的最小值。例如:假设我们有一个数组 [[8,10,12], [12, 14, 16], [17, 18, 19]],因此在这个例子中,我们可以看到每个子数组的最小值是 8、12、17,因为这些数组是排序形式。所以所需的结果应该是 [8, 12, 17]。但我们必须从每个未排序的子数组中找到最小值。为了解决这个问题,我们将使用 Python 的不同方法和技术。
上述问题的逻辑
为了解决和理解给定的问题,首先我们将从给定的数组中找到最小值。为了从给定的数组中找到最小值,我们可以使用 min 函数,它是 Python 中存在的内置方法,用于从列表或数组中获取最小值。
在第二种方法中,我们将使用 for 循环来查找并附加给定子数组的最小值。
在第三种方法中,我们将使用带有 min 函数的 map 方法以获得所需的结果。
算法 - 在数组中使用 min 函数
步骤 1 - 在第一步中,我们需要创建一个名为 min_in_record 的函数。此函数还接受一个名为 record 的参数,用于记录项目。
步骤 2 - 由于我们已经定义了函数,因此现在我们将使用 min 函数查找数组中存在的最小值并将其返回以显示在输出中。
步骤 3 - 现在我们将使用 print 方法在控制台上显示所需的结果。
示例
def min_in_record(record): # 返回最小值 return min(record) record = [[81,102,123], [124, 145, 166], [177, 188, 199]] print("在记录中找到的最小值 - ", min_in_record(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]] #初始化一个空数组来存储最小值 min_items = [] #迭代数组项 for rec in record: min_item = min(rec) min_items.append(min_item) #打印所需结果 print(min_items)
输出
[81, 124, 177]
算法 - 使用 map 函数
步骤 1 - 在该算法中,我们将使用 map 函数,因此首先我们将定义一个包含子数组的数组并将其命名为 record。
步骤 2 - 定义数组后,我们将使用 map 函数映射数组中存在的所有项目,借助 min 函数,我们将获得每个子数组的最小值,获得最小元素后,我们将使用 Python 中的 list 关键字将其转换为列表。将结果存储在 min_items 变量中。
步骤 3 − 在最后一步中,我们将使用 min_items 打印结果。
示例 - 使用 map 函数
#初始化具有子数组的数组 record = [[81,102,123], [124, 145, 166], [177, 188, 199]] #从数组中查找最小项列表 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 循环。