字典以类似于下面的方式表示:
phonebook = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
字典由键及其相应的值组成,这种键–值对称为项(item)。在前面的示例中,键为名字,而 值为电话号码。每个键与其值之间都用冒号(:)分隔,项之间用逗号分隔,而整个字典放在花 括号内。空字典(没有任何项)用两个花括号表示:{}
函数dict()
使用函数dict()从其他映射(如其他字典)或键值对序列创建字典
>>> items = [('name', 'Gumby'), ('age', 42)]
>>> d = dict(items)
>>> d
{ 'name': 'Gumby','age': 42}
>>> d['name']
'Gumby'
一个元组的示例:
#一个简单的数据库
#人名做键的字典,每个人都作为一个字典
#字典包含‘phone’和‘addr’,分别表示电话号码和地址
people = {
'Alice':{
'phone':'2341',
'addr':'Foo drive 23'
},
'Beth':{
'phone':'9102',
'addr':'Bar street 42'
},
'Cecil':{
'phone':'3158',
'addr':'Baz avenue 90'
}
}
#电话号码和地址的描述性标签,供打印输出使用
labels = {
'phone':'phone number',
'addr':'address'
}
name = input('Name:')
#要查找电话号码还是地址?
request = input('Phone number(p) or address (a)?')
if request == 'p':
key = 'phone'
if request == 'a':
key = 'addr'
#当名字是字典所包含的键时打印信息
if name in people:
print("{}'s {} is {}.".format(name,labels[key],people[name][key]))
运行结果
Name:Beth
Phone number (p)or address (a)?a
Beth’s address is Bar street 42.
1.clear
删除所有的字典项,无返回值。
people = {'phone':'2341','addr':'Foo drive 23'}
print(people)
people.clear()
print(people)
运行结果:
{‘phone’: ‘2341’, ‘addr’: ‘Foo drive 23’}
{}
2.copy
copy 方法返回一个新字典,其包含的键值对与原来的字典相同(这个方法执行的是浅复制, 因为值本身是原件,而非副本)。
people = {'phone':'2341','addr':'Foo drive 23'}
new_people= people.copy()
print(people)
print(new_people)
运行结果:
{‘phone’: ‘2341’, ‘addr’: ‘Foo drive 23’}
{‘phone’: ‘2341’, ‘addr’: ‘Foo drive 23’}
3. fromkeys
方法fromkeys创建一个新字典,其中包含指定的键,且每个键对应的值都是None
>>> dict.fromkeys(['name', 'age'])
{'age': None, 'name': None}
或者可以使用特定值
>>> dict.fromkeys(['name', 'age'], '(unknown)')
>{'age': '(unknown)', 'name': '(unknown)'}
4.get
方法get为访问字典项提供了宽松的环境。通常,如果你试图访问字典中没有的项,将引发 错误。
>>> d = {}
>>> print(d['name'])
Traceback (most recent call last):
File "", line 1, in
print(d['name'])
KeyError: 'name'
使用get来访问不存在的键时,没有引发异常,而是返回None。可指定“默认” 值,这样将返回你指定的值而不是None。
>>> print(d.get('name'))
None
当访问存在时,get与普通访问相同
5.items
方法items返回一个包含所有字典项的列表,其中每个元素都为(key, value)的形式。字典项 在列表中的排列顺序不确定。
6. keys
方法keys返回一个字典视图,其中包含指定字典中的键
7.pop
方法pop可用于获取与指定键相关联的值,并将该键值对从字典中删除,返回删除的键对应的值。
>>> d={'x':1,'y':2}
>>> d.pop('x')
1
>>> d
{'y': 2}
8.value
方法values返回一个由字典中的值组成的字典视图。不同于方法keys,方法values返回的视 图可能包含重复的值。
注:添加新元素时可直接用如下方式
>>> d = {}
>>> d[1] = 1
>>> d[2] = 2
>>> d[3] = 3
>>> d[4] = 1
>>> d.values()
dict_values([1, 2, 3, 1])
9.update
方法update使用一个字典中的项来更新另一个字典
>>> c={'name':'alice','age':42,'address':'pylanf num92'}
>>> q={'score':77,'subject':'python'}
>>> c.update(q)
>>> c
{'name': 'alice', 'age': 42, 'address': 'pylanf num92', 'score': 77, 'subject': 'python'}
也可以用update直接更新对应键值对
>>> c.update({'bbb':2})
>>> c
{'name': 'alice', 'age': 42, 'address': 'pylanf num92', 'score': 77, 'subject': 'python', 'bbb': 2}