python统计单词中字母个数

Python014

python统计单词中字母个数,第1张

代码

string = "T-shirt"

letters = []

for i in range(65, 91):

  letters.append(chr(i))#A-Z

for i in range(97, 123):

  letters.append(chr(i))#a-z

num = 0

for i in string:

  if i in letters:#如果是字母

      num += 1

print(num)#输出num

运行效果:

6

备注:加粗部分的单词可以自己改。

解析:

通过ASCII码和chr函数查找到所有大小写字母,再逐一遍历单词,如果是字母就+1个,这样就可以得到统计数据了。

代码如下:

len(str.split())

其中str代表给出的英文句子

代码解释:

1. 将句子切分成一个一个的单词。

str.split()是使用空格将英文句子分成一个一个的单词。空格是split方法的默认值,可以自行更改。返回值就是单词列表。

2. 统计单词数量。

前面我们得到了单词的列表,len()方法可以统计列表的长度,这个长度就是单词的个数。

使用比较基本的方法写的参考代码

#!/usr/bin/env python

#  -*- coding: utf-8 -*-

#python 2.7

import re

print u'请输入字符串:'

wz = raw_input()

s = wz.lower()

#小写单词的正则表达式

r='[a-z]+'

#找到所有单词

ws = re.findall(r,s)

#定义一个字典来存储单词和次数

dt = {}

for w in ws:

dt[w] = dt.setdefault(w,0)+1

#wd来存储单词集合,可能有几个,比如2个单词,都出现30次

wd = []

#max用来存储单词出现的最多的次数

max = 0

for word,times in dt.items():

if times>max:

wd = []

wd.append(word)

max = times

elif times == max:

wd.append(word)

print u'有%s个单词,出现频率最高:'%len(wd)

for x in wd:

print "%s\t%s"%(x,max)

测试

请输入字符串:

A good beginning makes a good ending!!!

有2个单词,出现频率最高:

a       2

good    2