如何输出这样的结果:
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每个用户.刚一说明,我无法使用groupby从itertools在这种特殊情况下.在此先感谢您的帮助.干杯!!
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)
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |