Python实现:一行代码计算两个整数列表的平均绝对差
一行代码实现平均绝对差计算
没问题!咱们可以利用Python的生成器表达式和内置函数,把你的多行函数压缩成一行,同时保持逻辑清晰:
def avg_diff(a, b): return sum(abs(x - y) for x, y in zip(a, b)) / len(a)
解释一下这行代码的逻辑:
zip(a, b):把两个列表的对应索引元素配对,和你原来的for x, y in zip(a, b)作用完全一致abs(x - y) for x, y in zip(a, b):生成器表达式,逐个计算每对元素的绝对差sum(...):直接对所有绝对差求和,替代了原来的循环累加操作- 最后除以
len(a)(题目明确两个列表长度相同,用len(b)也可以)得到平均值
用你给出的测试例子验证一下:
输入a = [1, 2, 3, 4],b = [1, 1, 1, 1],计算过程是sum(0,1,2,3) /4 =6/4=1.5,完全符合预期结果。
内容的提问来源于stack exchange,提问作者Guy
相关产品推荐
相关产品推荐

