创建字典
>>> phonebook={‘alice’:’2897′,’alan’:’0987′,’jery’:’6754′}
dict函数
>>> items=[(‘name’,’gumby’),(‘age’,42)]
>>> d=dict(items)
>>> d
{‘age’: 42, ‘name’: ‘gumby’}
>>> d[‘name’]
‘gumby’
>>> d=dict(name=’july’,age=24)
>>> d
{‘age’: 24, ‘name’: ‘july’}
基本的字典操作(大部分与序列类似)
len(d)返回d中项(键-值对)的数量
d[k]返回关联到键k上的值
d[k]=v将值v关联到k上
del d[k]删除键为k的项
k in d检查d中是否有含有键为k的项
格式化字符串
>>> phonebook
{‘jery’: ‘6754’, ‘alice’: ‘2897’, ‘alan’: ‘0987’}
>>> “alan’s phone number is %(alan)s.” % phonebook
“alan’s phone number is 0987.”
方法:
clear 清除字典中所有的项
>>> d={}
>>> d[‘name’]=’gumby’
>>> d[‘age’]=42
>>> d
{‘age’: 42, ‘name’: ‘gumby’}
>>> d.clear()
>>> d
{}
>>> x={}
>>> y=x #x和y对应同一个字典
>>> x[‘key’]=’value’
>>> y
{‘key’: ‘value’}
>>> x={} #x关联到新的空字典
>>> y
{‘key’: ‘value’}
>>> x={}
>>> y=x
>>> x[‘key’]=’value’
>>> y
{‘key’: ‘value’}
>>> x.clear()
>>> y
{}
copy 返回一个具有相同键-值对的新字典(浅复制)
>>> x={‘name’:’admin’,’machines’:[‘foo’,’bar’,’bax’]}
>>> y=x.copy()
>>> y[‘name’]=’yhk’ #替换值,原字典不受影响
>>> y[‘machines’].remove(‘bar’) #修改了某个值(原地修改不是替换),原字典会改变
>>> y
{‘name’: ‘yhk’, ‘machines’: [‘foo’, ‘bax’]}
>>> x
{‘name’: ‘admin’, ‘machines’: [‘foo’, ‘bax’]}
deepcopy 深复制
>>> from copy import deepcopy
>>> d={}
>>> d[‘name’]=[‘aly’,’bob’]
>>> c=d.copy()
>>> e=deepcopy(d)
>>> d[‘name’].append(‘ageal’)
>>> c
{‘name’: [‘aly’, ‘bob’, ‘ageal’]}
>>> e
{‘name’: [‘aly’, ‘bob’]}
fromkeys 使用给定的键建立新的字典,每个键默认的对应的值为none
>>> {}.fromkeys([‘name’,’age’])
{‘age’: none, ‘name’: none}
>>> dict.fromkeys([‘name’,’age’])
{‘age’: none, ‘name’: none}
>>> dict.fromkeys([‘name’,’age’],'(unknown)’)
{‘age’: ‘(unknown)’, ‘name’: ‘(unknown)’}
get 访问字典项
>>> d={}
>>> print d[‘name’]
traceback (most recent call last):
file “”, line 1, in
print d[‘name’]
keyerror: ‘name’
>>> print d.get(‘name’)
none
>>> d.get(‘name’,’n/a’)
‘n/a’
>>> d[‘name’]=’eric’
>>> d.get(‘name’)
‘eric’
has_key 检查字典中是否有给出的键(python3.0没有这个函数)
>>> d={}
>>> d.has_key(‘name’)
false
>>> d[‘name’]=’eric’
>>> d.has_key(‘name’)
true
items和iteritems
items将所有的字典项以列表方式返回,这些列表项中的每一项都来自于(键,值)
iteritems返回一个迭代器对象
>>> d={‘title’:’my time!’,’url’:’http://www,python.org’,’spam’:0}
>>> d.items()
[(‘url’, ‘http://www,python.org’), (‘spam’, 0), (‘title’, ‘my time!’)]
>>> s=d.iteritems()
>>> s
>>> list(s)
[(‘url’, ‘http://www,python.org’), (‘spam’, 0), (‘title’, ‘my time!’)]
keys和iterkeys keys将字典中的键以列表形式返回 iterkeys返回针对键的迭代器
pop 移除
>>> d={‘x’:1,’y’:2}
>>> d.pop(‘x’)
>>> d
{‘y’: 2}
popitem 移除随机的项
>>> d={‘x’:1,’y’:2}
>>> d.popitem()
(‘y’, 2)
>>> d
{‘x’: 1}
setdefault 当键不存在时,返回默认值并更新相应字典
>>> d={}
>>> d.setdefault(‘name’,’n/a’)
‘n/a’
>>> d
{‘name’: ‘n/a’}
>>> d[‘name’]=’gumby’
>>> d.setdefault(‘name’,’n/a’)
‘gumby’
>>> d
{‘name’: ‘gumby’}
update 利用一个字典项更新另外一个字典
>>> d={‘x’:1,’y’:2,’z’:3}
>>> f={‘y’:5}
>>> d.update(f)
>>> d
{‘y’: 5, ‘x’: 1, ‘z’: 3}
values和itervalues alues返回字典中的值(itervalues返回值的迭代器)
>>> d={}
>>> d[1]=1
>>> d[2]=2
>>> d[3]=3
>>> d.values()
[1, 2, 3]
以上就是详解python中字典的几个方法的详细内容,更多请关注 第一php社区 其它相关文章!