字典是比列表更先进的一种内置数据结构。
“字典”就像实际中的字典一样,每一个单词对应好几个意思。在Python里面就是每一个键对应一个关联值。
在Python中,我们可以很方便的创建字典。
a_dict = {'server': 'db.diveintopython3.org', 'database': 'mysql'}
server 为键,db.diveintopython3.org 为值
database 为键,mysql 为值
字典由键(key)索引,而不能用关联值索引。
所以我们可以使用a_dict[server] 而不能使用 a_dict[mysql] ,我们可以由键获取值,而不能根据值获取键。
字典 可以在任何时间被修改,而且没有预定义大小。字典中不能有重复的键,所以当对原来有的键进行赋值时,新的值会取代旧的值,而不是创建一个新键值对。
当然,如果对一个不存在的键进行赋值,那么Python就会自动建立一个新的键值对。
如何删除一个键值对。
使用del 就可以了。
怎么给一个键对应好几个值呢。
字典能对应好多意思,当然Key也能对应好多value
虽然Python 本身不能对字典的键进行多赋值,但是我们可以使用列表的方法。
a_dict = {'server': ['db.diveintopython3.org','blog.ppzchina.com'], 'database': 'mysql'}
这样,我们就可以使用列表的性质了,任何性质。
有没有C语言中的二维数组的感觉。但却强大多了。
当然针对字典,还有一些常用的方法如下表。使用方法 a_dict.clear( )
方法
|
说明
|
clear( )
|
从字典删除所有项
|
copy( )
|
创建并返回字典的浅拷贝(新字典元素为原始字典的引用)
|
get(key [ ,returnvalue] )
|
返回key的值,若无key而指定了returnvalue,则返回returnvalue 值,若无此值则返回None
|
has_key( key )
|
如果key存在于字典中,就返回1(真);否则返回0(假)
|
items( )
|
返回一个由元组构成的列表,每个元组包含一对键-值对
|
keys( )
|
返回一个由字典所有键构成的列表
|
popitem( )
|
删除任意键-值对,并作为两个元素的元组返回。如字典为空,则返回KeyError异常
|
setdefault( key [,dummvalue])
|
具有与get方法类似的行为。如key不在字典中,同时指定了dummvalue,就将键(key)和指定的值(dummvalue)插入字典,如果没有指定dummvalue,则值为None
|
update( newDictionary )
|
将来自newDictionary的所有键-值添加到当前字典,并覆盖同名键的值
|
values( )
|
返回字典所有值组成的一个列表
|
iterkeys( )
|
返回字典键的一个迭代器
|
iteritems( )
|
返回字典键-值对的一个迭代器
|
itervalues( )
|
返回字典值的一个迭代器
|