我可以将字典键分配给列表或列表列表。然后取平均值,cov等:
input={'03439', '03440'}
list of list= [[PersonA, 7, 8, 9, 10, 11],[PersonB, 12, 13, 14, 15, 16]]
期望输出
{'03439': [PersonA, 7, 8, 9, 10, 11],'03440':[PersonB, 12, 13, 14, 15, 16]}
如果我想取上述的平均值,即使部分字符串和其他值,我也可以这样做吗?
答案 0 :(得分:2)
如果您想计算那里的平均值,那么您可以
>>> PersonA = 'Pino'
>>> PersonB = 'Gino'
>>> i=('03439', '03440') # tuple
>>> l=[[PersonA, 7, 8, 9, 10, 11],[PersonB, 12, 13, 14, 15, 16]]
>>> av={k:[v[0], sum(v[1:])/(len(v)-1)] for k,v in zip(i,l)}
>>> av
{'03439': ['Pino', 9.0], '03440': ['Gino', 14.0], }
Nota Bene:对于压缩工作input
必须是一个可以保持其元素顺序的迭代,例如元组或列表。集和简单字典不能这样做。
答案是否定的,整数不能用字符串求和
答案 1 :(得分:0)
使用zip
并构建dict
:
>>> dict(zip(input, list_of_lists))
{'03439': ['PersonA', 7, 8, 9, 10, 10], '03440': ['PersonB', 12, 13, 14, 15, 16]}
答案 2 :(得分:0)
使用izip和列表理解
from itertools import izip
[dict([(x,y)])for x,y in izip({'03439', '03440'},[['PersonA', 7, 8, 9, 10, 11],['PersonB', 12, 13, 14, 15, 16]])]
输出
[{'03439': ['PersonA', 7, 8, 9, 10, 11]}, {'03440': ['PersonB', 12, 13, 14, 15, 16]}]