注意:字典中的键必须是唯一的,换个说法,键可以是任意的不可变类型。
字典的创建:
phonebook={'Alice':'2345','Beth':'2668'}
print phonebook['Alice']
字典是dict类的实例/对象。#用dict函数创建字典
d=dict(name='Lucy',age=42)
print d
成员资格:可以用表达式k in d来查找成员是否在字典中,但查找的是键而不是值。找到了键之后获取后面的值就轻而易举了,当然最好用get()方法。
字典中的方法:
1.clear()(无返回值)
d.clear()
x={}
y=x
x['key']='value'
print y
x.clear()
#区别于x={}
print x
print y #当x.clear()后,y也被清空
结果为:
{'key': 'value'}
{}
{}
x={'Alice':'2345','Beth':['2668','4568','3496']}
y=x.copy()
print y
y['Alice']='balabala'
y['Beth'].remove('4568') #用remove方法删除一个子元素
print x
结果为:{'Beth': ['2668', '4568', '3496'], 'Alice': '2345'}
{'Beth': ['2668', '3496'], 'Alice': '2345'}
可以看到,当在副本中替换值的时候,原始字典不受影响,但是若修改原始字典也会跟着改变。
另有一种方法避免这种原始字典也被替换的方法——深复制 deepcopy(d)
from copy import deepcopy
x={'Alice':'2345','Beth':['2668','4568','3496']}
z=deepcopy(x)
此时,z中的值替换并不会连带x。
3.fromkeys()
fromkeys方法使用给定的键建立新的字典,每个键都对应一个默认的值None,比如可以再dict上调用该方法
dict.fromkeys(['name','age'])
4.get()
一般来说,如果直接访问字典中不存在的键值时会报错,为避免这样的错误,尽量用get(k)来访问值
5.has_key()
d.has_key(k)该方法与k in d方法相同,python3.0中不包括这个函数,返回值为布尔型
6.items和iteritems
items方法将字典所有项以列表的方式返回,列表中的每一项都表示为(键,值)对的形式,只是在返回的时候没有特定的顺序。
iteritems方法返回一个迭代器对象而不是列表
7.keys和iterkeys
keys方法将键以列表形式返回,同iteritems,iterkeys返回针对键的迭代器对象。
与此同时,还有返回字典中所有值的方法values()和itervalues()
8.pop()
d={'a':1,'b':2,'c':3}
r=d.pop('a')
print d
print r
结果:
{'c': 3, 'b': 2}
1
注意:pop()方法必须得有键这个参数,若是想删除元素而不带参数,可以用popitem()。
9.popitem()
相较于pop()会弹出列表的最后一个元素(原则上),但实际上字典没有“最后的元素”,它是无序的。
10.setdefault()
类似于get方法,能够获得给定键的值,若键不存在,则返回默认值并且相应的更新字典。
11.update()
d.update(x)可用于在字典中添加新的一项x。