【发布时间】:2012-02-10 23:15:35
【问题描述】:
不确定我是否应该为此拆分数据库,但如果看到此问题的另一种解决方案会很有趣。
我在一个文本文件中有一些文本行,例如...
Bill
Bill
Pete
Mary
Mary
Mary
我不想重复,就这样实现了……
f = open('cgi/log/ipAddressList.log', 'r')
uniquelines = set(f.read().split("\n"))
for line in uniquelines:
print line
f.close()
这给了我...
Bill
Mary
Pete
但现在我想统计一下它们在文本文件中出现了多少个实例,例如...
Bill (2)
Mary (3)
Pete (1)
有没有任何一种 python 魔法可以做到这一点? 提前致谢。
编辑: 酷,我研究了收藏并想出了,
f = open('cgi/log/ipAddressList.log', 'r')
c = collections.Counter( f.read().split("\n") )
uniquelines = set(c)
for line in uniquelines:
print line + '%s (%d)' % (line, c[line])
f.close()
刚刚注意到关于 readlines() 的新评论,所以也感谢您。
这是我的字典解决方案...
f = open('cgi/log/ipAddressList.log', 'r')
l = list( f.readlines() )
d = {}
for i in set(l):
d[i] = l.count(i)
print d
【问题讨论】:
-
阅读
collections.defaultdict。然后重写你的问题,包括defaultdict上的任何问题。
标签: python duplicates