Python3.8 赋值表达式,用于列表理解或作为表达式

Python3.8 assignment expressions, use in list comprehension or as an expression

我最近发现 assignment expressions 存在。我想重构我的一些代码以利用它们。大多数我想用它的地方转换起来都比较简单

但是,我不确定用于此特定功能的语法。有没有一种方法可以用赋值表达式替换 functools.reduce 的用法?

from functools import reduce

def get_average(xs):
    """
    This function takes in a list of nx3 lists and returns the average
    along each column, returning a 3 length list.
    """
    return [
        x / len(xs)
        for x in reduce(
            lambda acc, x: [sum(z) for z in zip(acc, x)],
            xs,
            [0, 0, 0])]

如何直接将赋值表达式的结果用作表达式对我来说并不简单。有没有一个很好的 pythonic 方法来做到这一点?

这里不需要赋值表达式,看这个简单的列表理解:

[sum(i)/len(i) for i in zip(*l)]

示例:

# input
l = [[1,2,3], [4,5,6]]

# output
[2.5, 3.5, 4.5]