字典:都可以叫通过轻松查找某个特定的词语(键),从而找到他的定义(值)。
创建和使用字典:
- >>> phonebook = {'zhang': '231',
- 'wang': '123'
- }
dict 函数:可以通过 dict 函数,通过其他映射(比如其他字典)或者(键,值)对的序列建立字典
- >>> items = [('name','zhang'),('age',2)]
- >>> d = dict(items)
- >>> d
- {'age': 2, 'name': 'zhang'}
- >>> d["name"]
- 'zhang'
- #dict 函数也可以通过关键字参数来创建字典
- >>> d = dict(name ="zhang",age=2)
- >>> d
- {'age': 2, 'name': 'zhang'}
字典的基本操作
字典的基本行为在很多方面与序列类似
len(d) -- 返回 d 中 键值对的数量
d[k] -- 返回键 K 的值
d[k] = v -- 将 V 值赋值到 K 键上 (若 K 不在 d 中,则自动添加到 d 中,与序列不同)
del d[k] -- 删除 键为 K 的值
k in d -- 检查 d 中是否含有键为 K 的项 (注意:查找的是键)
字典的格式化字符串
在每个转换说明符中的 % 后 加上键(用括号),后面再更上其他说明元素
- >>> phonebook = {'zhang':'123','wang':'555'}
- >>> "zhang's phone number is %(zhang)s." % phonebook
- "zhang's phone number is 123."
字典的方法
1.clear -- 清除字典中的所有项。无返回值,或者可以理解为 返回 None
- >>> d = {}
- >>> d['name'] = 'zhang'
- >>> d['age'] = 23
- >>> d
- {'age': 23, 'name': 'zhang'}
- >>> return_value = d.clear()
- >>> print return_value
2.copy 与 deepcopy 复制
3.from_keys -- 使用给点的键 建立新的字典
4.get 更宽松的访问字典的方法,如果键 不存在 返回 None
5.has_key 与 in 方法一样
6.items 和 iteritems --keys 和 iterkeys
items -- 将字典所有项以列表方式返回 列表中每一项都会表示为(键,值)对的形式,但没有什么次序
iteritems -- 作用大致相同,但会返回一个迭代器,而不是列表
- >>> d = {'titile':'i am a tiger','age':10}
- >>> d.items()
- [('age', 10), ('titile', 'i am a tiger')]
- >>> it = d.iteritems()
- >>> it
- <dictionary-itemiterator object at 0x02B136C0>
7.pop -- 用来获得对应于 键的值,并删除这对键值对
- >>> d
- {'age': 10, 'titile': 'i am a tiger'}
- >>> d.pop('age')
- 10
- >>> d
- {'titile': 'i am a tiger'}
- #不存在键,报错
- >>> d.pop('name')
- Traceback (most recent call last):
- File "", line 1, in
- d.pop('name')
- KeyError: 'name'
8.popitem 弹出随机的项,并删除
- >>> d
- {'age': 10, 'titile': 'i am a tiger'}
- >>> d.popitem()
- ('age', 10)
- >>> d
- {'titile': 'i am a tiger'}
9.setdefault - 类似于 get 方法,能够获得给定键相关联的值,还能在字典中不含有给定键的情况下设定相应的键值
- >>> d = {}
- >>> d.setdefault('name','N/A')
- 'N/A'
- >>> d
- {'name': 'N/A'}
- >>> d['name'] = 'zhang'
- >>> d.setdefault('name','N/A')
- 'zhang'
- >>> d
- {'name': 'zhang'}
10.update -- 利用一个字典更新另外一个字典 ,被更新的字典 会加到 原字典中,键相同的话会被覆盖
>>> d = {'title':'zhang','age':10}
>>> x = {'age':20}
>>> d.update(x)
>>> d
{'age': 20, 'title': 'zhang'}
>>> y = {'sex':'male'}
>>> d.update(y)
>>> d
{'age': 20, 'sex': 'male', 'title': 'zhang'}
来源: http://www.bubuko.com/infodetail-1965592.html