使用Python为给定列表分配字典键

2024-05-10 12:48:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以为一个或多个列表分配字典键吗。然后取平均值、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]}

如果我想取上面的平均值,我可以这样做,即使这是字符串和其他值的一部分?你知道吗


Tags: of字符串列表input字典covlist平均值
3条回答

使用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]}]

使用zip并构造一个dict

>>> dict(zip(input, list_of_lists))
{'03439': ['PersonA', 7, 8, 9, 10, 10], '03440': ['PersonB', 12, 13, 14, 15, 16]}

如果你想计算那里的平均值,然后你可以

>>> 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必须是一个iterable,它可以保持元素的顺序,例如元组或列表。集合和普通词典不能做到这一点。你知道吗

答案是否定的,整数不能用字符串求和

相关问题 更多 >