代码的功能:对输入的字符串按字母降频排序输出,同频次的字母按照字母表顺序排序。但是代码我看不懂,求大神帮我解释一下。感激不尽!!
1条回答 默认 最新
关注 #我是一个新手,第一次看这么复杂的代码,不过仔细分析一下可以理解 #源代码 s = input('please input string:') freq = {} for c in s: freq[c] = freq.setdefault(c, 0) + 1 print(','.join(sorted(freq, key=lambda x: (-freq[x], x)))) #等价于 s = input('please input string:') #提示输入一个字符串 freq = {} #定义一个字典结构 for c in s: #遍历输入的字符串 freq[c] = freq.setdefault(c, 0) + 1 #在字典结构中查找,若之前没有设置为0 + 1,若已经存在则直接加1 sorted(freq, key=lambda x: (-freq[x], x)) #这里是排序,key的值是排序规则, #如果是`freq[x]`默认是按照频度升序,所以使用`-freq[x]`表示使用频度负数排序,即变成了降序,后边还有一个x表示频度相同按字典排序 print(','.join(freq)#便是把排好的序列使用盗号分隔输出
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用
- ¥15 C++ yoloV5改写遇到的问题
- ¥20 win11修改中文用户名路径
- ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
- ¥15 帮我写一个c++工程
- ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
- ¥15 关于smbclient 库的使用