映射类型是一种支持成员关系操作符(in)和尺寸函数(len)的数据类型,并且也是可迭代的。映射是键-值数据项的组合,并提供了存取数据项及其键、值的方法。进行迭代时,映射类型以任意顺序存取其数据项。
1. 字典dict
dict是一种无序的组合数据类型,其中包括0个或多个键-值对。其中,键是指向可哈希运算的对象的对象引用,值是可以指向任意类型的对象的对象引用。
字典的键是独一无二的,如果向字典中添加的键-值对的键与字典中已经存在的键相同,效果是会改变字典的该键的值。
字典可以用花括号来创建{},创建时,花括号里面存的是键-值对,键和值之间用冒号分隔,键值对之间用逗号分隔。可以用方括号[]来存取值,方括号中是键,返回键所对应的值。
由于字典又包含键又包含值,所以我们可以根据(key, value)项、根据键或根据值来进行迭代,比如:
根据项迭代:
for item in d.item():
print(item[0], item[1])
或者:
for key, value in d.item():
print(key, value)
根据键迭代:
for key in d.keys():
print(key)
或者:
for key in d:
print(key)
根据值迭代:
for value in d.values():
print(value)
字典内涵是一个表达式,同时也是一个循环,该循环带有一个可选的条件(包括在方括号中),与集合内涵非常类似:
{keyexpression: valueexpression for key, value in iteralbe}
{keyexpression: valueexpression for key, value in iteralbe if condition}
2. 默认字典
默认字典也是一种字典,这种字典包含字典所提供的所有操作符和方法。与普通字典相比,默认字典的不同之处在于可以对遗失的键进行处理,而在所有其他 方面与字典一样。比如:如果有某个字典d,其中不包含键为m的项,那么代码x = d[m]就会产生一个异常。如果d是一个默认字典,则会创建一个新项,键为m,值为默认值,并返回新创建的值。