Python - 元组列表中的最小值

pythonserver side programmingprogramming

当前的问题是使用 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 − 之后,我们将在 min_values 对象中借助 append 方法附加所有 min_val。然后打印 min_values 的值。

示例

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

# 在每个列表中查找最小值
min_values = []
for k, l in tupleList:
   min_val = min(l)
   min_values.append((k, min_val))

#输入元组列表
print("输入元组列表:" + str(tupleList))
# 打印最小值
print("最小值为:" + str(min_values))

输出

输入元组列表:[('X', [14, 12, 25]), ('Y', [21, 32, 24]), ('Z', [45, 30, 16])]
最小值为:[('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 - 现在我们将返回在第二步中找到的最小值。并打印所需的值。

示例

#从元组列表中查找最小值的函数
def getMinValue(t_list):
   min_item = min(t_list, key=lambda x: x[0])
   return min_item[0]

#初始化元组列表
t_list = [(12, 18), (16, 13), (14, 19)]
min_item = getMinValue(t_list)
print(f"给定元组列表中的最小值为:{min_item}")

输出

给定元组列表中的最小值为:12

复杂度

使用内置函数(如 min 和 lambda)从元组列表中查找最小值的时间复杂度为 O(n),其中 n 是给定输入元组列表的大小。由于我们使用 min 函数迭代元组列表的项目,并且从列表中访问最小值需要 n 时间。

结论

结论是,我们已经成功实现了使用不同方法从元组列表中获取最小值的代码,并了解了所有方法的时间复杂度。我们还看到了 lambda 函数在这个问题中的用法。


相关文章