创建字典

>>> 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的项
  • 注意:
    1. 键类型:键类型可以是任意不可变类型,如整数,浮点数,字符串等;
    2. 自动添加:如果字典中不包含指定的键,可以通过赋值增加新项;
    3. 成员资格:k in d 是查找字典中是不是有键k对应的项,而列表是查 找的是值,v in l, 值v是不是在列表中;
    4. 字典中检查键的效率要比列表检查值的高效;

格式化字符串

>>> phonebook
{'Jery': '6754', 'Alice': '2897', 'Alan': '0987'}
>>> "Alan's phone number is %(Alan)s." % phonebook
"Alan's phone number is 0987."

方法:

keys 返回字典中的键

dict1=dict1.fromkeys(range(5),'')
for eachkey in dict1.keys():
    print(eachkey)
0
1
2
3
4
5

values返回字典中的值

dict1=dict1.values(range(5),'赞')
for eachvalue in dict1.values():
    print(eachvalue)
赞
赞
赞
赞
赞
赞

  

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 "<pyshell#60>", line 1, in <module>
    print d['name']
KeyError: 'name'
>>> print d.get('name')
None
>>> d.get('name','N/A')
'N/A'
>>> d['name']='Eric'
>>> d.get('name')
'Eric'
复制代码

items将所有的字典项以列表方式返回,这些列表项中的每一项都来自于(键,值)

复制代码
>>> d={'title':'My Time!','url':'http://www,python.org','spam':0}
>>> d.items()
[('url', 'http://www,python.org'), ('spam', 0), ('title', 'My Time!')]
复制代码

keys和iterkeys keys将字典中的键以列表形式返回 iterkeys返回针对键的迭代器

pop 移除

>>> d={'x':1,'y':2}
>>> d.pop('x')
1
>>> 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}

 

posted on 2017-07-27 11:57  奈何鸿飞雁  阅读(197)  评论(0)    收藏  举报