怎么判断这两个代码哪个写的好

有一个包含一些数字的数组。除了一之外,所有数字都相等。尝试找到它!
find_uniq([ 1, 1, 1, 2, 1, 1 ]) == 2
find_uniq([ 0, 0, 0.55, 0, 0 ]) == 0.55
保证数组包含至少 3 个数字。
def find_uniq(arr):
    return [j for j in set(arr) if arr.count(j) == 1][0]
    
print(find_uniq([ 1, 1, 1, 1, 1, 2]))

def find_uniq(arr):
    a, b = set(arr)
    return a if arr.count(a) == 1 else b
    
print(find_uniq([ 1, 1, 1, 1, 1, 2]))
阅读 1k
1 个回答

判断代码写得好主要从几个方面入手:
1、代码的复杂度分析;
2、代码的可读性;

按照你写的这两个函数,只考虑arr只有2个不同元素的情况,等于set集合的元素个数就只有2个,代码复杂度都是一样的,第二可读性我觉得第二种方式的可读性好一些。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题