嘿所有人都是python编程的新手,我注意到一些令我困惑的代码。
import collectors
s = 'mississippi'
d = collectors.defaultdict(int)
for k in s:
d[k] += 1
d.items()
我需要知道的是这里使用d [k] ..我知道k是字符串s中的值。但我不明白d [k]返回什么。在defaultdict(int)中,新值是如果dictonary没有值,则创建..
请帮助我任何帮助将不胜感激..谢谢..
答案 0 :(得分:2)
Python中的字典是“映射”类型。 (这适用于常规dict
字典和更专业的变体,如defaultdict
。)映射采用键并将其“映射”为值。语法d[k]
用于在字典k
中查找键d
。根据代码中的位置,它可能具有稍微不同的语义(返回键的现有值或设置新值)。
在您的示例中,您使用的是d[k] += 1
,它会增加字典中键k
下的值。由于整数是不可变的,它实际上会突破为d[k] = d[k] + 1
。右侧d[k]
查找字典中的值。然后它添加一个,并使用左侧的d[k]
将结果作为新值分配到字典中。
defaultdict
稍微改变一点,因为字典中尚不存在的键被视为确实存在。其构造函数的参数是一个“工厂”对象,当请求未知密钥时,将调用该对象来创建新值。
答案 1 :(得分:0)
你去吧
d[key]
Return the item of d with key key. Raises a KeyError if key is not in the map.
直接来自python docs,在映射类型下。
转到https://docs.python.org/并为其添加书签。它将成为你最好的朋友。