我有一个这样的列表-
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
如果多个项目是“最小的”(例如 -14
和 14
),这将返回遇到的第一个。如果您需要处理平局,您可以使用元组作为键,例如:
>>> 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/