分析 nginx 的日志,目前把把数据按照需求,处理成[(requesturl1,responsetime1),(requesturl2,responsetime2),.......].
现在想要统计下 url 的次数,以及 avg responsetime,并排序.
我能想到的就是 for 循环,感觉有点 low,请教大家一下更好的办法,多谢!
a =[["d",2],["c",5],["a",9],["b",4],["b",2],["c",9]]
uniqs = list(set([x[0] for x in a]))
res = {}
for i in uniqs:
count = 0
sumtime = 0
for j in a:
if i == j[0]:
count = count + 1
sumtime = sumtime + j[1]
res[i] = [count,sumtime]
lists = []
for i in res.keys():
lists.append((i,res[i][0],res[i][1]/res[i][0]))
print(sorted(lists,key=lambda x:x[1],reverse=True))