C版有人问查找重复字符串的问题

C版有人问查找重复字符串的问题

原问题和80000条测试数据在这里
http://bbs.chinaunix.net/thread-1337284-1-1.html


简单写了一个
字典应该是自动hash吧?
狗快了吧?

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/env python

fd = open('Noname.txt')
all = fd.read()
fd.close()
lst = all.split('\n')
dit = {}
for i in lst:
        if dit.has_key(i):
                dit[i] = dit[i] + 1
        else:
                dit[i] = 0
for i in dit:
        if dit[i] > 0:
                print dit[i], i.split('@')[0]



[Copy to clipboard] [ - ]
CODE:
for i in lst:
    dit[i] = dit.get(i, 0) + 1

会不会更好点?
用readline把。

23号的hash很简洁哦。呵呵。
语法高手。。。


QUOTE:
原帖由 starfuck 于 2008-12-23 17:32 发表

d = {}
for ln in open('noname.txt'):
    t = ln.split('@')[0]
    d[t] = d.get(t, 0)+1
print '\n'.join(['%d %s' % (v, k) for k, v in d.items() if v > 1])

可以用下with,文件都不需要关闭了。
for ln in open('noname.txt')
??????
open(xxx)返回一个file对象,它是可以iterable的。