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] = 0
3 再次遍历字符串,得到每一个字符在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])]+1
4 最后输出

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"

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值