Python练习题答案: 最接近零【难度:1级】--景越Python编程实例训练营,1000道上机题等你来挑战

最接近零【难度:1级】:

答案1:

def closest(lst):
    m = min(lst, key=abs)
    return m if m == 0 or -m not in lst else None

答案2:

def closest(lst):
    result = min(lst, key=abs)
    return result if not result or -result not in lst else None

答案3:

def closest(lst):
    m = min(lst, key=lambda x: abs(x))
    if not m or -m not in lst: return m​

答案4:

def closest(lst):
    lst = sorted(set(lst), key=abs)
    if len(lst) > 1 and abs(lst[0]) == abs(lst[1]):
        return None
    return lst[0]

答案5:

def closest(lst):
    min_v = min(lst, key=lambda x: abs(x))
    return None if -min_v in lst and min_v else min_v​

答案6:

from functools import reduce; closest=lambda arr: (lambda r: None if r[1] else r[0])(reduce(lambda a,b: [a[0],True] if a[0] and a[0]==-b else [b,False] if abs(b)<abs(a[0]) else a,arr,[999999,False]))

答案7:

def closest(lst):
    if 0 in lst:
        return 0
    lst = sorted(lst, key=lambda i: abs(i))
    return lst[0] if lst[0] * (-1) not in lst else None

答案8:

def closest(arr1):
    ranked = sorted(arr1, key = lambda x: abs(x))

    lowest = [num for num in arr1 if abs(num) == abs(ranked[0])]

    if len(set(lowest)) == 1:
        return lowest[0]
    else:
        return None

答案9:

def closest(lst):
    lst = sorted(set(lst), key=abs)
    return lst[0] if len(lst) < 2 else None if abs(lst[0]) == abs(lst[1]) else lst[0]

答案10:

def closest(lst):
    l = sorted(set(lst), key=lambda x: abs(x))
    if len(l) == 1 or abs(l[0]) != abs(l[1]):
        return l[0]



Python基础训练营景越Python基础训练营QQ群

在这里插入图片描述
欢迎各位同学加群讨论,一起学习,共同成长!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值