Python-计算字典值中整数的平均值(嵌套列表)

Python-计算字典值中整数的平均值(嵌套列表),python,list,dictionary,average,Python,List,Dictionary,Average,很难用语言来描述我的问题,所以这里有一个简单的例子来说明我正在尝试做什么 我有一本字典 aDict= {'user1':[[1,2,3],[4,5,6]], 'user2': [[2,3,4],[5,6,7]]} 我想计算嵌套循环中相同索引中的数字的平均值 我想得到的理想结果是 anotherDict = {'user' : [[1.5 , 2.5 , 3.5 ],[ 4.5 , 5.5 , 6.5 ]]} 1.5=key-user1中1的平均值[0][0]和key-user2中2的平均值[

很难用语言来描述我的问题,所以这里有一个简单的例子来说明我正在尝试做什么

我有一本字典

aDict= {'user1':[[1,2,3],[4,5,6]], 'user2': [[2,3,4],[5,6,7]]}
我想计算嵌套循环中相同索引中的数字的平均值

我想得到的理想结果是

anotherDict = {'user' : [[1.5 , 2.5 , 3.5 ],[ 4.5 , 5.5 , 6.5 ]]}
1.5=key-user1中1的平均值[0][0]和key-user2中2的平均值[0][0] 2.5=key-user1中2个值的平均值[0][1]和key-user2中3个值的平均值[0][1] ... 等等。。。 6.5=key-user1.值[1][2]的平均值为6,key-user2.值[1][2]的平均值为7

我对python真的是个新手,对于我的问题难以解释,我深表歉意


提前谢谢你的帮助

您可以使用大量zip*使用以下嵌套理解。。。换位:

aDict= {'user1':[[1,2,3],[4,5,6]], 'user2': [[2,3,4],[5,6,7]]}
[[sum(x)/len(x) for x in zip(*vals)] for vals in zip(*aDict.values())]
# [[1.5, 2.5, 3.5], [4.5, 5.5, 6.5]]
在Python2中,您必须采取一些措施来获取浮点值,例如:

[[1.0*sum(x)/len(x) for x in zip(*vals)] for vals in zip(*aDict.values())]
@Schwobasegll解决方案的地图+列表理解方式:

print([list(map(lambda x: sum(x)/len(x),zip(*v))) for v in zip(*aDict.values())])
print(list(map(lambda v: list(map(lambda x: sum(x)/len(x),zip(*v))),zip(*aDict.values()))))
并将其分配给新的dict:

d={'user':[list(map(lambda x: sum(x)/len(x),zip(*v))) for v in zip(*aDict.values())]}
d={'user':list(map(lambda v: list(map(lambda x: sum(x)/len(x),zip(*v))),zip(*aDict.values())))}
或者@schwobasegl解决方案的map+map方式:

print([list(map(lambda x: sum(x)/len(x),zip(*v))) for v in zip(*aDict.values())])
print(list(map(lambda v: list(map(lambda x: sum(x)/len(x),zip(*v))),zip(*aDict.values()))))
并将其分配给新的dict:

d={'user':[list(map(lambda x: sum(x)/len(x),zip(*v))) for v in zip(*aDict.values())]}
d={'user':list(map(lambda v: list(map(lambda x: sum(x)/len(x),zip(*v))),zip(*aDict.values())))}
如果版本低于3且高于2.2,则从_ufuture _;导入分区,以获得python 3样式分区

它们都输出:

[[1.5, 2.5, 3.5], [4.5, 5.5, 6.5]]

您确定aDict值中的列表长度吗?是的,aDict值中的列表长度与您从_future __导入除法获得Python 2.2中的Python 3样式除法相同。谢谢!以前想不起zip函数!