矩阵列表理解均值

Jef*_*eff 2 python list-comprehension list

这是前一个问题的一个分支,开始滚雪球.如果我有一个矩阵A并且我想使用每行[1:]值的平均值/平均值来创建另一个矩阵B,但保持行标题不变,我该怎么做?我已经包括矩阵A,我试图将列表理解拼凑在一起,以及预期的结果.

from operator import sum,len

# matrix A with row headings and values
A = [('Apple',0.95,0.99,0.89,0.87,0.93),
('Bear',0.33,0.25.0.85,0.44,0.33),
('Crab',0.55,0.55,0.10,0.43,0.22)]

#List Comprehension
B = [(A[0],sum,A[1:]/len,A[1:]) for A in A]
Run Code Online (Sandbox Code Playgroud)

预期结果

B = [('Apple', 0.926), ('Bear', 0.44), ('Crab', 0.37)]
Run Code Online (Sandbox Code Playgroud)

rec*_*ive 5

你的列表理解看起来有点奇怪.您对iterable和item使用相同的变量.

这种方法似乎有效:

def average(lst):
    return sum(lst) / len(lst)

B = [(a[0], average(a[1:])) for a in A]
Run Code Online (Sandbox Code Playgroud)

我已经创建了一个average可读性函数.它符合您的预期值,所以我认为这就是您想要的,尽管您的使用mul表明我可能会遗漏某些东西.