柿子饼同学 发表于 2021-4-4 17:15:02

代码看不懂

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

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

现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。
【代码】a=input()
dicts={}
for i in a:
    dicts=dicts.get(i,0)+1
l = sorted(dicts.items(), key= lambda x:x)
print(l[-1])
print(l[-1])
看不懂第三行后面的,能请大神给一个详细的解释么,谢谢{:10_277:}
第4行的话是每次每个元素都加1,这怎么能行呢
来自蓝桥杯官网

梦回连营 发表于 2021-4-4 17:36:56

dicts=dicts.get(i,0)+1对字典dicts赋值,其中get()的意思是找字典中键为i的值,如果没找到就生成该键并赋值为0
l = sorted(dicts.items(), key= lambda x:x)这是对字典中的元素排序,key= lambda x:x 这是选择依据字典元素中的哪一维进行排序

柿子饼同学 发表于 2021-4-4 18:03:17

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

那第一行最后为什么要加一呢

柿子饼同学 发表于 2021-4-4 18:08:19

柿子饼同学 发表于 2021-4-4 18:03
那第一行最后为什么要加一呢

出错了,这是为什么呢>>> d = {'a':1, 'b':2}
>>> for i in d:
        d = d.get(i, 0)+1
他说是整型,不可迭代

梦回连营 发表于 2021-4-5 10:40:48

柿子饼同学 发表于 2021-4-4 18:08
出错了,这是为什么呢
他说是整型,不可迭代

加一就是为了计数啊
可是我的为什么没有出错
页: [1]
查看完整版本: 代码看不懂