将一对变量分配给 Python 中两个变量的 min/max

Assigning a pair of variables to the min/max of two variables in Python

我想为变量 minmax 分配两个量,具体取决于它们的值。假设 f 是一个 returns 整数值的函数。有什么办法可以做类似

的事情吗?
min, max = f(1), f(2)

哪个占 f(1)f(2) 的值?显然,上面将 f(1) 分配给 min 并将 f(2) 分配给 max 而不管它们的值如何。

您可以这样做:

min, max = (f(1),(f2)) if f(1)<f(2) else (f(2),f(1))

如果这就是您要找的。

您可以在将 return 值分配给 min_vmax_v 之前对其进行排序。

min_v, max_v = sorted((f(1), f(2)))

如果你有一个小的 return 值的可迭代对象(但超过 2 个),使用 extended iterable unpacking 可能没问题。

min_v, *_, max_v = sorted(map(f, some_small_list))

但是当然,如​​果您将 f 应用于任何相当长的列表,使用内置函数(您 shouldn't shadow)提取最小值和最大值会更有效而不是排序和解包。