如何在python中对两个列表项求和

如何在python中对两个列表项求和,python,Python,我有一本字典: my_dict = {'A': [-1,-1,-1], 'B': [-1,-1,-1], 'C': [0,0,1]} my_list=['A','C'] 我想找到“A”和“C”的平均值,这样平均值就是一个新列表,其中包含字典键A和C的值除以2: result=[(-1+0)/2, (-1+0)/2, (-1+1)/2] i、 e,result=[-0.5,-0.5,0.0] 我如何计算结果?请注意,my_list=['A','C']不是固定值,因此请不要使用固定值 编辑:my

我有一本字典:

my_dict = {'A': [-1,-1,-1], 'B': [-1,-1,-1], 'C': [0,0,1]}
my_list=['A','C']
我想找到“A”和“C”的平均值,这样平均值就是一个新列表,其中包含字典键A和C的值除以2:

result=[(-1+0)/2, (-1+0)/2, (-1+1)/2]
i、 e,
result=[-0.5,-0.5,0.0]

我如何计算结果?请注意,
my_list=['A','C']
不是固定值,因此请不要使用固定值


编辑:
my_list=['A','C']
是传递给函数的变量。例如,它可以是['A','B','C']。所以,请考虑一下。我不能在代码中明确使用“A”和“C”。

听起来你真的想使用pandas,或者至少是numpy。在熊猫中,这是:

import pandas as pd
data = pd.DataFrame({'A': [-1,-1,-1], 'B': [-1,-1,-1], 'C': [0,0,1]})
my_list = ['A', 'C']
data[my_list].mean(axis=1)
在任何情况下,在普通python中,这是:

[sum(values)/float(len(my_list)) for values in zip(*[my_dict[key] for key in my_list])]

应该是:
[(float(a)+c)/2代表a,c在zip中(my_dict['a'],my_dict['c'])]
我作弊并使用
2。
将答案设为float。编辑为
2.0
以澄清问题。@U2EF1:请检查后期编辑。
(va+vc)/float(len(my_列表))
,而不仅仅是2。最好完全避免分裂问题。
from __future__ import division # for python < 3 only
my_dict = {'A': [-1,-1,-1], 'B': [-1,-1,-1], 'C': [0,0,1]}
my_list=['A','C']
l = []
for v in zip(*(my_dict[x] for x in my_list)):
    l += [ sum(v) / len(v) ]
[-0.666, -0.666, -0.333]