python中的索引值混淆

时间:2014-04-05 16:09:28

标签: python

嘿所有人都是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没有值,则创建..

请帮助我任何帮助将不胜感激..谢谢..

2 个答案:

答案 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/并为其添加书签。它将成为你最好的朋友。