Kel*_*vis 2 python tuples list
我有一个元组列表,如下例所示.我如何查看列表并找到相同的所有缩写,然后在那里添加分数.希望能够为所有缩写执行此操作.
loop = [('MD', 0.0), ('MD', 0.0), ('MD', 0.0), ('LA', 0.0625), ('LA', 0.0625), ('CA', -0.5), ('CA', -0.5), ('CA', -0.5))]
Run Code Online (Sandbox Code Playgroud)
你可以用itertools.groupby()来做
>>> from itertools import groupby
>>> loop = sorted(loop, key = lambda x:x[0])
>>> {k:sum(list(e[1] for e in v)) for k, v in groupby(loop, lambda x:x[0])}
{'MD': 0.0, 'CA': -1.5, 'LA': 0.125}
>>>
Run Code Online (Sandbox Code Playgroud)
要获得平均值,请将以上代码替换为以下代码:
>>> result = dict()
>>> for k, v in groupby(loop, lambda x:x[0]):
... temp = list(v)
... result[k] = sum(i[1] for i in temp)/len(temp)
...
>>> result
{'MD': 0.0, 'LA': 0.0625, 'CA': -0.5}
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |