通过字典统计字符串中字母出现的次数
碎碎念
这个内容还是我日常互相种草的好友提供的素材,很基础也很实用,稍微进阶一些就可以用来统计文章中的单词出现的频率了。她在网上找的代码用了库,通过python中的字典可以很简洁的完成。(下图是她在网上找的)
关于python中的字典
我们可以把字典理解为一种容器,我们可以往里面装任意类型的对象,字典的每个键值 key:value 对用“冒号 :” 分割,每个键值对之间用“逗号 ,” 分割,整个字典包括在花括号 {} 中 ,表示如下:
d = {key1 : value1, key2 : value2 }
1.创建字典
dict1 = {'key1':'value1' , 'key2':'value2' , 'key3':'value3'}
2.修改字典
字典中如果同一个键被赋值两次,后一个值会被记住,也就实现了字典的修改,如下:
dict1 = {'key1':'value1' , 'key2':'value2' , 'key3':'value3'}
dict1['key3']=2
print (dict1)
输出结果:
{'key1': 'value1', 'key2': 'value2', 'key3': 2}
当然,我们还可以删除字典中的元素和字典:
del dict['key1'] # 删除键 'key1'
dict.clear() # 清空字典,但字典还在
del dict # 删除字典,整个字典都没有了
实现代码
第一个代码用到了循环,把这个里面的key用x表示,查看key是否在字典中,在的话对应的变量加一,不再的话就新增加一个key并使其的值为一。
str1 = 'Danphnis love Alice'#给出字符串
d = {} #给出字典
for x in str1:
if x in d:
d[x]=d[x]+1
else:
d[x]=1
print (d)
{'D': 1, 'a': 1, 'n': 2, 'p': 1, 'h': 1, 'i': 2, 's': 1, ' ': 2, 'l': 2, 'o': 1, 'v': 1, 'e': 2, 'A': 1, 'c': 1}
下面po一个更为简短的代码,使用到了numpy库中的unique函数。但是这个代码是每一个字符都要循环一遍,如果字符串中内容过多的话就不是很适合了。
import numpy as np
str1 = 'Danphnis love Alice'
dic = {k:str.count(k) for k in np.unique(list(str1))}
print (dic)