文章目录
可以通过名称来访问各个值的数据结构,成为映射(mapping),字典是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下。键可能是数,字符串或元组。
1 字典的用途
字典旨在让你能够轻松的找到特定的单词(键),以获取其定义(值)。如:
- 表示棋盘的状态,其中每个键都是由坐标组成的元组;
- 存储文件修改的时间,其中键为文件名;
- 数字电话/地址簿。
2 基本用法
字典由键及其相应的值组成,这种键值对成为项(item)。如:
>>> people = {
'Li' : 886, 'tang': 12}
>>> people
{
'Li': 886, 'tang': 12}
每个键与其值之间都用冒号分隔,项之间用逗号分隔,而整个字典放在花括号内。
2.1 创建字典
使用函数 dict从其他映射或者键值对序列创建字典。
>>> items = [('name', 'Li'), ('age', 27)]
>>> d = dict(items)
>>> d
{
'name': 'Li', 'age': 27}
>>> d['name']
'Li'
还可以使用关键字实参来调用这个函数。
>>> d = dict(name = 'Li', age = 27)
>>> d
{
'name': 'Li', 'age': 27}
2.2 基本操作
字典的基本操作在很多方面都类似于序列:
- len()d返回字典d包含的键值对数;
- d[k]返回与键k相关联的值;
- d[k] = v将值v关联到键k;
- del d[k]删除键为k的项;
- k in d检查字典d是否包含键为k的项。
以下是跟序列一些重要的不同之处:
- 键的类型:可以是任何不可变的类型,如实数,字符串或元组;
- 自动添加:即便是字典中原本没有的键,也可以给它赋值,这将在字典中创建一个新项。
- 成员资格:表达式k in d(字典)查找的是键而不是值,而表达式v in l(列表)查找的是值而不是索引。
2.3 将字符串格式设置功能用于字典
在字典中存储一系列键值对,只需要在格式字符串中提取所需的信息即可,可通过format_map来通过一个映射来提供所需的信息。
>>> people = {
'Li' : 886, 'tang': 12}
>>> "Li's number is {Li}".format_map(people)
"Li's number is 886"
在使用字典时,可指定任意数量的转换说明符,条件是所有字段名都是包含在字典中的键 。
在模板系统中,这种 字符串格式设置方式很有用
>>> template = '''<html>
... <head><title>{title}</title></head>
... <body>
... <h1>{title}<h1>
... <p>{text}<p>
... </body>'''
>>> data =