def histogram(s):
d = dict()
for c in s:
if c not in d:
d[c] = 1
else:
d[c] += 1
return d
print(histogram('brontosaurus'))
因此我被要求使用'get'方法更简洁地编写函数。它说我应该能够删除'if'语句。我尝试了不同的东西,但我只需要在我理解之前看一个例子...请提供示例代码非常感谢!
更新:我已经研究过了,我明白'得到的是什么'但我在这种情况下使用它时遇到了麻烦。我不知道如何修改这个功能......这就是我被困住的地方。
答案 0 :(得分:0)
在Python中,dict.get(k,v)
将在字典中搜索密钥k
并将其返回。但是,如果字典中不存在k
,而不是像KeyError
那样提出d[k]
并且可能导致程序崩溃,它将返回提供的默认值{{1} }。在未指定默认值v
的情况下调用get(k)
将返回v
。
有了这个说法,删除None
声明是一件小事:
if
如果def histogram(s):
d = dict()
for c in s:
d[c] = d.get(c,0) + 1
return d
不存在,d[c]
将返回d.get(c,0)
,即提供的默认值。如果0
确实存在,d[c]
将返回存储的值。因此,如果某个密钥尚未出现在字典中,d.get(c,0)
设置为d[c]
,当然是1.下一次特定密钥为0 + 1
- ed,{{ 1}}将返回存储的值get
,然后添加1并重新分配,依此类推。