鱼C论坛

 找回密码
 立即注册
查看: 1775|回复: 4

代码看不懂

[复制链接]
发表于 2021-4-4 17:15:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 柿子饼同学 于 2021-4-4 17:22 编辑

【问题】小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。

现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。
【代码】
  1. a=input()
  2. dicts={}
  3. for i in a:
  4.     dicts[i]=dicts.get(i,0)+1
  5. l = sorted(dicts.items(), key= lambda x:x[1])
  6. print(l[-1][0])
  7. print(l[-1][1])
复制代码

看不懂第三行后面的,能请大神给一个详细的解释么,谢谢
第4行的话是每次每个元素都加1,这怎么能行呢
来自蓝桥杯官网
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-4 17:36:56 | 显示全部楼层
dicts[i]=dicts.get(i,0)+1  对字典dicts赋值,其中get()的意思是找字典中键为i的值,如果没找到就生成该键并赋值为0
l = sorted(dicts.items(), key= lambda x:x[1])  这是对字典中的元素排序,key= lambda x:x[1] 这是选择依据字典元素中的哪一维进行排序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-4 18:03:17 | 显示全部楼层
梦回连营 发表于 2021-4-4 17:36
dicts=dicts.get(i,0)+1  对字典dicts赋值,其中get()的意思是找字典中键为i的值,如果没找到就生成该键并 ...

那第一行最后为什么要加一呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-4 18:08:19 | 显示全部楼层
柿子饼同学 发表于 2021-4-4 18:03
那第一行最后为什么要加一呢

出错了,这是为什么呢
  1. >>> d = {'a':1, 'b':2}
  2. >>> for i in d:
  3.         d[i] = d.get(i, 0)+1
复制代码

他说是整型,不可迭代
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-5 10:40:48 | 显示全部楼层
柿子饼同学 发表于 2021-4-4 18:08
出错了,这是为什么呢
他说是整型,不可迭代


加一就是为了计数啊
可是我的为什么没有出错
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 23:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表