本节主要实现以下目标:
1、实现Python获取字符串中出现次数最多/少的字符:
![](https://i-blog.csdnimg.cn/blog_migrate/6bbd302fddd8aa8df6856c6c0e9cf285.webp?x-image-process=image/format,png)
2、存在问题分析与处理:
代码说明:
1、max() 方法返回给定参数的最大值,参数可以为序列。详细参考菜鸟教程。
2、Python count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。详细参考菜鸟教程。
代码存在问题:
issue1、输入字符串可能是全英文字符,当然也可能是非全英文字符。比如含中文字符、数字字符、特殊字符等等。这种情况下getmaxchar()将有可能不会返回预期值。需要进一步优化。
issue2、getminchar返回的值往往不是预期的值。如上面例子中,预期返回m,实际上返回的值却是b。
存在问题根因分析:
issue1、max方法中给定的参数序列为string.ascii_lowercase的执行结果:'abcdefghijklmnopqrstuvwxyz'。在使用count()方法计数时,只能对序列中存在的字符进行数目的统计。
3、优化方案
优化方案1:先去重,再将去重后的序列作为max、min的参数。
![](https://i-blog.csdnimg.cn/blog_migrate/1f53d8eb3f81261474c17e4a473fd0a0.webp?x-image-process=image/format,png)
case:中文字符串
![](https://i-blog.csdnimg.cn/blog_migrate/f89497d5b1896307112592cfec888a20.webp?x-image-process=image/format,png)
case:全数字字符
![](https://i-blog.csdnimg.cn/blog_migrate/c23c3c7ad5739f9738f4a974dface633.webp?x-image-process=image/format,png)
Case:全特殊字符
![](https://i-blog.csdnimg.cn/blog_migrate/8fad1973ded230edbe313fb2eb6c89ba.webp?x-image-process=image/format,png)
Case:混合字符
![](https://i-blog.csdnimg.cn/blog_migrate/39152b9b68ac8b28df63394cb003a59c.webp?x-image-process=image/format,png)