如何在python中进行内联for循环来总结数字列表?

我做了这个 for 循环,我只想把它放在一行中。

def mean(list):
    sum = 0
    for i in list:
        sum += i
    return sum // len(list)

我试过这个,但它不起作用,这是一个语法错误。

def mean(list):
    sum = 0
    sum = [sum += i for i in list]
    return sum // len(list)

回答

更快(更好)的方法是使用built-ins:

def mean(a):
    return sum(a)/len(a)

你不能使用内联循环求和,除非你使用包括:=运算符和列表理解在内的奇特技巧。(推荐)

顺便说一句,你应该永远不会使用内建的名字作为变量names.They会使你的代码更难理解,和(有时)慢。

编辑:如果你真的想要在一行中循环,这里是如何做到的(需要 python3.9+)

def mean(a):
    s=0
    return [s:=s+i for i in a][-1]/len(a)


以上是如何在python中进行内联for循环来总结数字列表?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>