python统计一个文档中 各个字符出现的次数
来源:python challenge上面的题目
目标:给出一个长长的字符串,统计每一个字符出现的次数。
思路:
1 将字符串转换成不重复的list(转换成set也可以,但是这样子出来的是无序的)
def tran_s_to_list(s): list_all = [] l = len(s) # 得到长度,遍历 for x in xrange(0,l): # 当x不在list中,即第一次出现,追加到list中 if not s[x] in list_all: list_all.append(s[x]) return list_all
2 定义一个与list等长的list_statistic(用于统计)
# 复制一个和list等长的数组list_statistic,并且全部赋值为0 list_to_statistic = list_all[ : ] for x in xrange( 0, len(list_all) ): list_to_statistic[x] = 03 再次遍历字符串,得到每一个字符在list中的index,同时,在list_statistic中对应的元素中加一。
def statistic(s, list_all, list_to_statistic): l = len(s) for x in xrange(0,l): 遍历字符串,找到每一个char在list中的index,在list_statistic相应位置加一 list_to_statistic[list_all.index(s[x])] = list_to_statistic[list_all.index(s[x])]+14 最后输出
listlength = len(list_all) for x in xrange(0, listlength): print str(list_all[x])+"" + "---appers---"+str(list_to_statistic[x])+"---times"完整代码:
f = file("data.txt") s = f.read() # 这里的s采用文件的方式读取 global list_all global list_to_statistic def tran_s_to_list(s): list_all = [] l = len(s) # 得到长度,遍历 for x in xrange(0,l): # 当x不在list中,即第一次出现,追加到list中 if not s[x] in list_all: list_all.append(s[x]) return list_all def statistic(s, list_all, list_to_statistic): l = len(s) for x in xrange(0,l): 遍历字符串,找到每一个char在list中的index,在list_statistic相应位置加一 list_to_statistic[list_all.index(s[x])] = list_to_statistic[list_all.index(s[x])]+1 # print list_all.index(s[x]), # print list_all = tran_s_to_list(s) # 复制一个和list等长的数组list_statistic,并且全部赋值为0 list_to_statistic = list_all[ : ] for x in xrange( 0, len(list_all) ): list_to_statistic[x] = 0 statistic(s, list_all, list_to_statistic); # 打印 listlength = len(list_all) for x in xrange(0, listlength): print str(list_all[x])+"" + "---appers---"+str(list_to_statistic[x])+"---times"
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。