为什么我不能在dict理解中使用get()方法

时间:2018-03-20 01:51:03

标签: python loops dictionary list-comprehension

我想用'key'循环和dict方法尝试dict理解,如下所示:

def most_frequent(str1):
    d = {}
    return {k:(d.get(k,0) +1) for k in str1} 


str1 = 'abacdefag'
most_frequent(str1)

返回: {'a':1,'b':1,'c':1,'d':1,'e':1,'f':1,'g':1} 这不是我的预期。

我知道我可以这么简单地做到这一点:

def most_frequent(str1):
    d = {}
    for k in str1:
        d[k] = d.get(k,0)+1

    return d

str1 = 'abacdefag'
most_frequent(str1)

并返回:  {'a':3,'b':1,'c':1,'d':1,'e':1,'f':1,'g':1}

但我真的想知道理解中发生了什么。有人可以帮忙吗?感谢

0 个答案:

没有答案