在 Python 的元组列表中查找最小值和最大值

Python 要在元组列表中查找最小值和最大值:

  1. 使用 min() 和 max() 函数。
  2. 将 key 参数传递给函数。
  3. 选择要比较的元组中的元素。
my_list = [(100, 1),  (100, 2), (100, 3)]

# ✅ get min tuple in list of tuples
min_tuple = min(my_list, key=lambda tup: tup[1])

print(min_tuple)  # 👉️ (100, 1)

# ------------------------------------------------------

# ✅ get max tuple in list of tuples

max_tuple = max(my_list, key=lambda tup: tup[1])

print(max_tuple)  # 👉️ (100, 3)

min 函数返回可迭代对象中的最小项或两个或多个参数中最小的一个。max 函数返回可迭代对象中的最大项或两个或多个参数中最大的一个。

这些函数采用可选的默认关键字参数,用于指定在提供的可迭代对象为空时返回的值。

result = max((), default=0)

print(result)  # 👉️ 0

如果可迭代对象为空且未提供默认关键字参数,则函数会引发 ValueError

key 参数指定一个单参数排序函数,如用于 list.sort() 的函数。

my_list = [(100, 1),  (100, 2), (100, 3)]

min_tuple = min(my_list, key=lambda tup: tup[1])

print(min_tuple)  # 👉️ (100, 1)

我们选择索引 1 处的元组项来比较元组中的第二项。

我们还可以使用 key 参数根据不同的条件获取元组列表中的最小值和最大值。

my_list = [(100, 'a'),  (100, 'ab'), (100, 'abc')]

# ✅ get value with min length in list of tuples
min_tuple = min(my_list, key=lambda tup: len(tup[1]))

print(min_tuple)  # 👉️ (100, 'a')

# ------------------------------------------------------

# ✅ get value with max length in list of tuples

max_tuple = max(my_list, key=lambda tup: len(tup[1]))

print(max_tuple)  # 👉️ (100, 'abc')

我们将每个元组中的第二项传递给 len() 函数以获取字符串的长度。

我们为 key 参数提供的函数可用于根据不同的条件获取最小值和最大值。