免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6392 | 回复: 19
打印 上一主题 下一主题

C版有人问查找重复字符串的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-23 11:53 |只看该作者 |倒序浏览
原问题和80000条测试数据在这里
http://bbs.chinaunix.net/thread-1337284-1-1.html


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


  1. #!/usr/bin/env python

  2. fd = open('Noname.txt')
  3. all = fd.read()
  4. fd.close()
  5. lst = all.split('\n')
  6. dit = {}
  7. for i in lst:
  8.         if dit.has_key(i):
  9.                 dit[i] = dit[i] + 1
  10.         else:
  11.                 dit[i] = 0
  12. for i in dit:
  13.         if dit[i] > 0:
  14.                 print dit[i], i.split('@')[0]
复制代码

论坛徽章:
0
2 [报告]
发表于 2008-12-23 12:11 |只看该作者

  1. for i in lst:
  2.     dit[i] = dit.get(i, 0) + 1
复制代码


会不会更好点?

论坛徽章:
0
3 [报告]
发表于 2008-12-23 12:17 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2008-12-23 12:34 |只看该作者
用readline把。

23号的hash很简洁哦。呵呵。

论坛徽章:
0
5 [报告]
发表于 2008-12-23 17:32 |只看该作者
本帖最后由 starfuck 于 2019-11-26 23:53 编辑












论坛徽章:
0
6 [报告]
发表于 2008-12-23 17:47 |只看该作者
语法高手。。。

论坛徽章:
0
7 [报告]
发表于 2008-12-23 17:57 |只看该作者
原帖由 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,文件都不需要关闭了。

论坛徽章:
0
8 [报告]
发表于 2008-12-23 18:56 |只看该作者
for ln in open('noname.txt')
??????

论坛徽章:
0
9 [报告]
发表于 2008-12-23 19:37 |只看该作者
open(xxx)返回一个file对象,它是可以iterable的。

论坛徽章:
0
10 [报告]
发表于 2008-12-23 20:31 |只看该作者
本帖最后由 starfuck 于 2019-11-26 23:53 编辑












您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP