python字符统计
⑴ python统计各字母个数
一、实现思路
需要统计字符串中每个字母出现的次数;如果字母是第一次出现的话,就把次数置为1,如果字母非第一次出现的话,就需要在原字母已保存次数上加1;仔细思考一下,需要保存字母和出现次数,然后相同字母出现多次的话,需要在原字母保存的次数加1;字典这种数据类型可以实现这种需求。
二、代码实现
2.1 统计字母出现次数
统计字符串每个字母出现次数源码:
def count_each_char(str):
dict = {}
for i in str:
if i not in dict:
dict[i] = 1
else:
dict[i] += 1
return dict
if __name__ == "__main__":
res = count_each_char("abdefdcsdf")
print(res)
简化版统计字符串字母出现次数源码:
dict[i] 表示的是字典中字母对应的value(出现次数)
dict.get(i,0)+1 表示的是从字典获取字母,如果字典中没有查找到对应字母,则将字母i,次数1存入字典
def count_each_char(str):
dict = {}
for i in str:
dict[i]=dict.get(i,0)+1
return dict
运行结果:2.2 按字母出现次数排序
根据字母出现次数倒序排列源码:
def count_each_char_sort_value(str):
dict = {}
for i in str:
dict[i] = dict.get(i, 0) + 1
# sorted 方法会生成一个排序好的容器
# operator.itemgetter(1) 获取字典第一维的数据进行排序
# reverse 表示倒序排列
dict=sorted(dict.items(),key= operator.itemgetter(1),reverse=True)
return dict
if __name__ == "__main__":
res = count_each_char_sort_value("abdefdcsdf")
print(res)
运行结果:
从运行结果可以看出,通过调用sorted方法,已经根据指定的key进行倒序排序了
⑵ python用字典统计不同字符的个数
这里用到了字典基本的建立,value调用,键值对增加,value修改,以及items()函数。
编程实现
流程:文件遍历-除去空白——判断字典中有无该字符——有则Value加1,无则新建为1——按Value排序并返回
具体实现代码如下:
#统计txt文件中的字符频率
def countwords(txt):
stat = {}#建立字典存储存储字符和对应频率
for line in txt:
line = line.strip()
if len(line) == 0:
continue
for i in range(len(line)):
#判断有无该字符的键
if(line[i] in stat):
stat[line[i]]+=1
else:
stat[line[i]]=1
result=sorted(stat.items(),key = lambda x:x[1],reverse = True)#按value大小排序
return result
xyj = open('xyj.txt' ,'r',encoding = 'utf-8')#读文件
r=countwords(xyj)#调用函数
xyj.close
⑶ python中count函数怎么用
统计列表中字符的出现频率
inp_lst = ['Apple','Banana','Apple','Grapes','Jackfruit','Apple']
lst_cnt = inp_lst.count('Apple')
print(lst_cnt)
⑷ python函数统计字符串中字母数学其他字符的个数
代码如下:
text = "Hello Python,Hello 2021."
letter = 0
digital = 0
other = 0
for i in text:
if i.isalpha():
letter += 1
elif i.isdigit():
digital += 1
else:
other += 1
print('字母:{} 数字:{} 其他:{}'.format(letter,digital,other))
输出:
字母:16 数字:4 其他:4
下面是Python内置关于判断字符串类型的方法介绍:
str.isalnum()
如果字符串中的所有字符都是字母或数字且至少有一个字符,则返回True, 否则返回False。 如果c.isalpha(),c.isdecimal(),c.isdigit(),或c.isnumeric()之中有一个返回True,则字符``c``是字母或数字。
str.isalpha()
如果字符串中的所有字符都是字母,并且至少有一个字符,返回True,否则返回False。字母字符是指那些在 Unicode 字符数据库中定义为 "Letter" 的字符,即那些具有 "Lm"、"Lt"、"Lu"、"Ll" 或 "Lo" 之一的通用类别属性的字符。 注意,这与 Unicode 标准中定义的"字母"属性不同。
str.isascii()
如果字符串为空或字符串中的所有字符都是 ASCII ,返回True,否则返回False。ASCII 字符的码点范围是 U+0000-U+007F 。
3.7 新版功能.
str.isdecimal()
如果字符串中的所有字符都是十进制字符且该字符串至少有一个字符,则返回True, 否则返回False。十进制字符指那些可以用来组成10进制数字的字符,例如 U+0660 ,即阿拉伯字母数字0 。 严格地讲,十进制字符是 Unicode 通用类别 "Nd" 中的一个字符。
str.isdigit()
如果字符串中的所有字符都是数字,并且至少有一个字符,返回True,否则返回False。 数字包括十进制字符和需要特殊处理的数字,如兼容性上标数字。这包括了不能用来组成 10 进制数的数字,如 Kharosthi 数。 严格地讲,数字是指属性值为 Numeric_Type=Digit 或 Numeric_Type=Decimal 的字符。
str.isidentifier()
如果字符串是有效的标识符,返回True,依据语言定义,标识符和关键字节。
调用keyword.iskeyword()来检测字符串s是否为保留标识符,例如def和class。
⑸ Python接收输入一个字符串,统计其中小写字母的个数
可以这样编写程序:
1、定义一个含有所有小写字母的列表变量w及一个待测字符串变量s。
2、对s字符串中的每一个字符进行循环迭代检测其是否位于变量w中,若为真,则对计数变量c进行加一操作。
3、输出c变量,即为所求。
具体代码及运行示例如下图所示:
程序代码及示例运行结果
⑹ python如何在给定的字符串中,统计某个特定子串的数量
代码如下:【备注】:1. 用str.split(',')只能分隔逗号一种;如果涉及到多重分隔的话就需要使用re.split(',|:')。2. 原字符串以逗号分隔的,后面有一个或多个字符串,所以re.split(', | ')。3. 执行re.split(r', | ', S)操作之后,列表中会产生大量的'',就需要将filter过滤掉。4. 使用L.count(x) == 1 或者 L.count(x) > 1来保留重复项或,非重复项。5. set(L)则是保留列表中的唯一项,再用list()将其转换为列表。6. 使用', '.join(L),将列表拼接成我们想要的字符串。