【Python】有没有大佬懂下面这段代码思路?

Python编程练习题题目是输入一个字符串,求出字符串中有多少种字符,以及每个字符的个数。下面是书上答案搞不懂a=list[0]啥意思以及为啥两个print运行结果附在图... Python编程练习题 题目是输入一个字符串,求出字符串中有多少种字符,以及每个字符的个数。 下面是书上答案 搞不懂 a=list[0]啥意思 以及为啥两个print 运行结果附在图里了s=(input())list=[i for i in s]list.sort()count=0a=list[0]for item in list: if item ==a: count += 1 else: print(a,":",count) count=1 a=itemprint(a,":",count) 展开
 我来答
xgn911
2022-11-17 · TA获得超过1363个赞
知道小有建树答主
回答量:1493
采纳率:96%
帮助的人:641万
展开全部

这段代码的思路是先将所有字符按其ASCII值升序排序(list.sort(),关键步骤)

这样同样的字符就会排列在一起,再从头开始统计每段连续出现的字符及其个数

其中a=list[0]表示从头开始统计,a代表上一段连续出现的字符

第一个print()在else: 之后,表示遇到不一样的字符,上一段连续出现的字符终止

那么先print()上一段连续出现的字符及其个数,再重置a为新一段连续出现的字符

第二个print()在for循环之外,表示打印最后一段连续出现的字符及其个数

添加了注释的代码和运行结果如下:

关键在于先排序,再统计每段连续出现的字符,注意不要忘记最后一段~望采纳~

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式