我们的任务是编写一个python函数,实现计算均值。函数接收两个等长的整数列表nums_1
和nums_2
,将它们索引相同的两个元素的差值分别进行平方运算,然后汇总求和并返回平均值。
示例:
输入:[1, 2, 3], [4, 5, 6]
,输出:9
,因为(9 + 9 + 9) / 3
。
题目难度:简单
题目来源:codewars
def mean_square(nums_1:list, nums_2:list):
pass
assert mean_square([1,2,3], [4,5,6]) == 9
assert mean_square([10, 20, 10, 2], [10, 25, 5, -2]) == 16.5
assert mean_square([10, 10], [10, 10]) == 0
def mean_square(nums_1: list, nums_2: list):
return sum(list(map(lambda x: x ** 2, [nums_2[i] - nums_1[i] for i in range(len(nums_1))]))) / len(nums_1)
assert mean_square([1, 2, 3], [4, 5, 6]) == 9
assert mean_square([10, 20, 10, 2], [10, 25, 5, -2]) == 16.5
assert mean_square([10, 10], [10, 10]) == 0
fwj
(fwj)
2021 年8 月 12 日 05:59
3
面试题要是都这个难度就好了
def mean_square(num1:list,num2:list):
if len(num1)==0:
return 0
else:
nums=0
for i in range(len(num1)):
nums=nums+(num1[i]-num2[i])**2
return nums/(len(num1))
hua123
(测开19期学委-花小田)
2021 年8 月 12 日 09:13
4
def mean_square(nums_1:list, nums_2:list):
return sum(list(map(lambda x: (x[0]-x[1])**2, zip(nums_2, nums_1)))) / len(nums_1)
assert mean_square([1,2,3], [4,5,6]) == 9
assert mean_square([10, 20, 10, 2], [10, 25, 5, -2]) == 16.5
assert mean_square([10, 10], [10, 10]) == 0
参考题解
def mean_square(nums_1:list, nums_2:list):
return sum(map(lambda x, y: (x - y) ** 2, nums_1, nums_2)) / len(nums_1)
assert mean_square([1,2,3], [4,5,6]) == 9
assert mean_square([10, 20, 10, 2], [10, 25, 5, -2]) == 16.5
assert mean_square([10, 10], [10, 10]) == 0
解题思路:利用python3内置函数map()和sum()函数实现。
map()
函数语法:map(function, iterable, ...)
,接收一个函数对象,以及任意个可迭代对象。这里我们是用lambda
匿名函数定义处理传入的可迭代对象的计算逻辑。
sum()
函数的语法:sum(iterable[, start])
,用来对序列进行求和计算。其中iterable
表示可迭代对象,可以是列表、元组、集合;start
表示指定相加的参数,如果没有设置这个值,默认为0。
参考题解
def mean_square(nums_1:list, nums_2:list):
return sum((x-y)**2 for x,y in zip(nums_1, nums_2)) / len(nums_1)
assert mean_square([1,2,3], [4,5,6]) == 9
assert mean_square([10, 20, 10, 2], [10, 25, 5, -2]) == 16.5
assert mean_square([10, 10], [10, 10]) == 0
解题思路:利用python3内置函数zip()和sum()函数实现。
zip()
函数接收可迭代的对象作为参数,将对象中对应的元素对应打包成一个个元组,返回的是zip对象。
例如zip([1,2,3], [4,5,6])
的结果是<zip object at 0x10c399880>
,转成列表则是[(1, 4), (2, 5), (3, 6)]
。