python - 用负数计算列表中的绝对最小值

标签 python

我有一个这样的列表-

list=[137,136,135,134,119,118,-14,-89,-208,-291,-491,-513,-596,-699]

现在我想计算列表中的最小数字而不考虑符号,但在最终答案中应该保留符号。

例如这里的答案是 -14。

现在我首先将列表拆分为正数和负数并分别计算最小值和最大值,然后比较绝对值并返回答案。

最佳答案

您可以使用 min()使用 key 参数的函数:

>>> lst = [137,136,135,134,119,118,-14,-89,-208,-291,-491,-513,-596,-699]
>>> min(lst, key=abs)
-14

如果多个项目是“最小的”(例如 -1414),这将返回遇到的第一个。如果您需要处理平局,您可以使用元组作为键,例如:

>>> lst = [14,137,136,135,134,119,118,-14,-89,-208,-291,-491,-513,-596,-699]
>>> min(lst, key=lambda x: (abs(x), x))
-14

关于python - 用负数计算列表中的绝对最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52971852/

相关文章:

python - 在 Google Cloud SDK 内的 python 脚本中执行 Node 脚本

python - 重用 ClientSession 时 aiohttp 请求失败

python - 使用 Groupby Pandas 描述函数 (Python 3.5.1)

python - 断链?未处理 Python 迭代

python - 如何有效地将 html 列表解析为字典?

python - macOS 上 psutil 的构建轮子失败

python - 尽管已安装,但无法加载 torchvision

Python gzip 省略原始文件名和时间戳

python - 具有无序索引的 dask 数据帧会导致静默错误吗?

python - 在 matplotlib 中动画散点和线