正在获取最接近0的数字,并且可以是负数



我有以下范围,我想选择0的壁橱数量。在下面的数组中,-4将是壁橱编号和正确答案。提前感谢

num_array = [-37,-24,-18,-10,-4,5,12,18,26]

让我们执行min并通过key传递选择

min(num_array, key=lambda x:abs(x-0))
-4

使用-1.进行检查

num_array = [-37,-24,-18,-10,-4,5,12,18,26,-1]
min(num_array, key=lambda x:abs(x-0))
-1

跟踪最小的最大的数。如果列表中没有0,则从上述两个数字中选择最接近的一个。


import sys
a = [-37,-24,-18,-10,-4,5,12,18,26]
maxn = sys.maxsize
minn = -sys.maxsize - 1
f = 0
for i in range(len(a)):
if a[i] == 0:
ans = 0
f = 1
break
elif a[i] > 0 and a[i] < maxn :
maxn = a[i]
elif a[i] < 0 and a[i] > minn :
minn = a[i]
else:
None
if f == 0:
if abs(maxn) < abs(minn):
ans = maxn
else:
ans = minn
print(ans)

最新更新