分析 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))
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.