如何按项目计算每个用户组中的项目数

Mac*_*ers 0 python python-2.3

如何输出这样的结果:

user    I   R   H
=================
atl001  2   1   0
cms017  1   2   1
lhc003  0   1   2
Run Code Online (Sandbox Code Playgroud)

从这样的列表:

atl001 I
atl001 I
cms017 H
atl001 R
lhc003 H
cms017 R
cms017 I
lhc003 H
lhc003 R
cms017 R
Run Code Online (Sandbox Code Playgroud)

即我想计算的数量I,H以及R每个用户.刚一说明,我无法使用groupbyitertools在这种特殊情况下.在此先感谢您的帮助.干杯!!

dug*_*res 6

data='''atl001 I
atl001 I
cms017 H
atl001 R
lhc003 H
cms017 R
cms017 I
lhc003 H
lhc003 R
cms017 R'''

stats={}
for i in data.split('\n'):
    user, irh = i.split()
    u = stats.setdefault(user, {})
    u[irh] = u.setdefault(irh, 0) + 1

print 'user  I  R  H'
for user in sorted(stats):
    stat = stats[user]
    print user, stat.get('I', 0), stat.get('R', 0), stat.get('H', 0) 
Run Code Online (Sandbox Code Playgroud)