[转载] Python基础:用Python统计列表中每个单词出现的次数(split 的使用,for双重循环)

参考链接: Python | 抓取网页并获得最常用单词的程序

如何用Python统计含多个字符串的列表中每个单词出现的次数? 

要从多个字符窜中统计次数的话,我们先来看一个简单的例子: 

先从一个字符串中统计每个单词出现的次数。 

如字符串: 

 

 str=“You may be out of my sight, but never out of my mind.” 

 

为了简化逻辑,我在这里将字符串做一些处理,如下: 

 

 str=“You may be out of my sight but never out of my mind” (将所有的标点全都换成了空格,) 

 

1.首先: 

在这里首先要向初学者介绍一个Python常用的一个方法:split() 语法: 

 

 str.split(str="", num=string.count(str)). 

 

参数: 

 

 str -----分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 num -----分割次数。默认为 -1, 即分隔所有。(次数不限) 

 

返回值: 

 

 返回分割后的字符串列表。 

 

注意:Python 的 split() 方法通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串 

示例: 

str = "Whatever is worth doing is worth doing well"  #这是一个字符串

print(str.split())        # 以空格为分隔符,分割所有

print(str.split(' ', 1 )) # 以空格为分隔符,分隔成两个(从第一个空格开始分割)

print(str.split(' ', 2 )) # 以空格为分隔符,分隔成三个(从第一个空格开始分割)

#......

 

运行结果: 

 

 [‘Whatever’, ‘is’, ‘worth’, ‘doing’, ‘is’, ‘worth’, ‘doing’, ‘well’] [‘Whatever’, ‘is worth doing is worth doing well’] [‘Whatever’, ‘is’, ‘worth doing is worth doing well’] #… 

 

2.继续: 

现在,我们已经了解了关键的方法,现在我们会到最初的问题: 对于一个字符串统计每个单词出现的次数。 代码如下: 

List=["You may be out of my sight but never out of my mind."]  #定义了只含一个字符串的列表

#根据情况判断,输出应为字典较为合适

dict={}  #定义一个空的字典,在后面的运算中逐步添加数据

keys=List[0].split()  #对列表中的字符串按空格分割

for key in keys: #遍历整个列表

    if key in dict.keys():  #判断当前key是否已经存在

        dict[key]=dict[key]+1  #在当前key的个数上加 1

    else:

        dict[key]=1  #当前key第一次出现

print(dict)

 

运行结果: 

 

 {‘You’: 1, ‘may’: 1, ‘be’: 1, ‘out’: 2, ‘of’: 2, ‘my’: 2, ‘sight’: 1, ‘but’: 1, ‘never’: 1, ‘mind.’: 1} 

 

3.最后: 

回到最原始的问题: 

 

 如何用Python统计含多个字符串的列表中每个单词出现的次数? 

 

当列表中含有多个字符串时,我们就要用到 for 的双重循环来遍历整个列表,代码如下: 

List=["hello you","hello my friends","you are so beautiful","you are a beautiful girl","a good boy"]

dict={}

for list in List:

    keys=list.split(" ")

    for key in keys:

        if key in dict.keys():

            dict[key]=dict[key]+1

        else:

            dict[key]=1

print(dict)

 

运行结果: 

 

 {‘hello’: 2, ‘you’: 3, ‘my’: 1, ‘friends’: 1, ‘are’: 2, ‘so’: 1, ‘beautiful’: 2, ‘a’: 2, ‘girl’: 1, ‘good’: 1, ‘boy’: 1}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值