#11 Python字典
前两节介绍了Python列表和字符串的相关用法,这两种数据类型都是有序的数据类型,所以它们可以通过索引来访问内部元素。本文将记录一种无序的数据类型——字典!
一、字典与列表和字符串的区别
- 字典是无序的,列表和字符串是有序的
- 字典使用 key-value(键-值对)存储,列表和字符串为单元素存储
- 字典的key值唯一,列表和字符串元素可以相同
- 字典的访问速度远高于列表和字符串的访问速度
- 字典通常被用作存储,列表和字符串常用来工作
二、字典的用法
在介绍其详细用法之前,先来看看其包含的方法:
1 | In [1]: dir(dict) |
从上面可以看到,字典的方法屈指可数,麻雀虽小,五脏俱全啊
字典的初始化
通过前文可知,字典是被一对花阔号括起来,内部元素采用 key-value 形式存储的数据类型:
普通初始化:
1 | In [5]: systems = {'windows':10,'linux':'centos 6'} # 初始化一个字典,含有不同的数据类型 |
高级初始化:dict.setdefault()
1 | In [24]: systems # 之前存在的字典 |
通过列表初始化:dict.formkeys()
1 | In [59]: systems={} # 创建一个空字典 |
字典的访问
通过字典名加一对方括号 dict[key]
来访问字典的元素:
1 | In [11]: systems = {'windows':10,'linux':'centos 6'} |
循环访问:字典本身是可以循环的:
1 | In [14]: systems |
更高级的循环访问:使用 dict.items()
1 | In [17]: for key,value in systems.items(): # 使用字典方法items()来循环遍历字典,但是会把字典转换为列表,还是少用哇 |
字典的增加和修改
字典的增加:dict[新的key] = 新的value
1 | In [19]: systems |
字典的修改:dict[存在的key] = 新的value
1 | In [21]: systems |
字典的更新:dict1.updata(dict2)
1 | In [31]: systems1 = {'ios':12,'windows':8} |
字典的删除
删除指定键值对方法1:dict.pop(key)
1 | In [37]: systems |
删除指定键值对方法2:使用del
1 | In [39]: systems |
随机删除键值对:dict.popitem()
1 | In [41]: systems |
清空字典元素:dict.clear()
1 | In [64]: systems = {'linux':'centos 6','windows':10} |
字典的查找
使用关键字 in : 1
2
3
4
5
6
7In [46]: systems = {'linux':'centos 6','windows':10}
In [47]: 'linux' in systems
Out[47]: True
In [48]: 'iso' in systems
Out[48]: False
使用访问查找:
1 | In [49]: systems |
使用 dict.get(key) 查找:
1 | In [52]: systems |
字典的统计
统计key:dict.keys()
1 | In [55]: systems |
统计value:dict.values()
1 | In [57]: systems |
字典的拷贝
请参考列表的拷贝,大同小异ㄟ( ▔, ▔ )ㄏ