微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

分组并计算元组列表中的平均值

如何解决分组并计算元组列表中的平均值

import itertools import operator

L = [('HSBC8999', 4, 179447), ('HSBC1199', 81, 864108), ('HSBC1199', 32, 715121),('HSBC8999', 4, 1447),('HSBC1199', 32, 61521) ]

L.sort(key=operator.itemgetter(0))
for _k, stackoverflow in itertools.groupby(L, operator.itemgetter(0)):
    subl = list(stackoverflow)
    subl.sort(key=operator.itemgetter(1))
    for k, subg in itertools.groupby(subl, operator.itemgetter(1)):
        subs = list(subg)
        print("the average of {} is {}".format(k, sum(s[2] for s in subs)/len(subs)))

解决方法

我有一个这样的元组列表:

x=[('HSBC8999',4,179447),('HSBC1199',81,864108),32,715121),('HSBC8999',1447),61521) ]

我要执行一些任务:

  1. 根据第一项将列表分组:HSBCXXXX

  2. 在每个组中,计算列表中具有相同第二项的第三项的平均值。

像这样:第一组:

('HSBC8999',179447)
('HSBC8999',1447)

平均4:(179447 + 1447)/ 2

第2组:

('HSBC1199',864108)
('HSBC1199',715121)
('HSBC1199',61521)

平均81:864108

32的平均值=(715121 + 61521)/ 2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。