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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/aumtopsale/article/details/102752567

最接近零【难度: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群

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

猜你喜欢

转载自blog.csdn.net/aumtopsale/article/details/102752567