【发布时间】:2022-01-23 12:49:06
【问题描述】:
我想向更高级的python程序员寻求建议。我有一个信息清单
stream = [
'2018-01-01,user1,3',
'2018-01-07,user1,4',
'2018-03-29,user1,1',
'2018-04-04,user1,13',
'2018-01-05,user2,7',
'2018-06-14,user3,4',
'2018-07-02,user3,10',
'2018-03-21,user4,19',
'2018-03-22,user4,4',
'2018-04-22,user4,8',
'2018-05-03,user4,9',
'2018-05-11,user4,11',
]
我需要得到这样的结果
total_logs_by_user = user1 : 21
user2 : 7
user3 : 14
user4 : 51
到目前为止我已经做的是这样的:
datas = []
for data in stream:
print(data[:11])
datas.append(data[11:])
print(datas)
['user1,3',
'user1,4',
'user1,1',
'user1,13',
'user2,7',
'user3,4',
'user3,10',
'user4,19',
'user4,4',
'user4,8',
'user4,9',
'user4,11']
然后我将 users 和 logs 数量分开:
users = []
logs = []
for a in datas:
#print(a[:5])
users.append(a[:5])
logs.append(a[6:])
现在,当我尝试zip(users, logs) 时,我没有得到正确的结果。无论如何,我的目标是汇总每个用户的日志。欣赏所有可能的解决方案。
【问题讨论】:
-
你得到什么不正确的结果?你怎么拉拉链?您提供了一堆背景信息,但忽略了实际相关的内容。
-
streams对象是否偶然来自.csv文件?这是相同的格式,如果是这样,有更好的方法去做你想做的事情,如果它是/是的话。
标签: python python-3.x list dictionary