python按字符串个数排序

有一个文件,里面一行记录一条字符串,比如有数百行,当然有重复的,然后按独立字符串出现的次数排序,print输出.

有思路的给个思路,没代码的给个代码,谢谢..
据说要用dict字典... 呃,有思路的给个思路,有代码的给个代码最好,...

第1个回答  2010-07-25
用一个字符一个字符去判断的话估计是很复杂,用正则表达式去判断应该会快点。
第2个回答  2010-07-25
思路:
字典类型的典型用法,使用字典类型来统计出现次数,字符串作为key,出现次数作为value。
代码如下:可以根据你的需要改,这个是把字符串的前后导空格都去掉了,空字符串不统计。

PS:又改了一下,这样效果能跟好点
# --coding:GB2312--
dic = {} #定义一个字典类型
fp = open('data.txt') #打开要查询的文件
for line in fp: #从fp中读取行,利用这种方法可以避免有空行截断读取
line = line.strip()#去掉前后导空白
if('' == line):
continue #去掉前后导空白如果是空行不作处理
if(line in dic): #判断s是否在字典内,如果在统计加1
dic[line] += 1
else: #如果不在,首次出现统计增加新key,统计数初始化为1
dic[line] = 1
fp.close() #读完文件,关闭文件
#按value排序,返回是一个元组的列表
afterSort = sorted(dic.items(), key=lambda dic: dic[1])
print afterSort #打印排序后列表,可按照自己需求提取打印

结果:
data.txt里存有
qiang
song
wan
qiang
song
qiang
执行python后打印出:
[('wan', 1), ('song', 2), ('qiang', 3)]本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网