# Python 字典
> 原文: [https://thepythonguru.com/python-dictionaries/](https://thepythonguru.com/python-dictionaries/)
* * *
于 2020 年 1 月 7 日更新
* * *
字典是一种 python 数据类型,用于存储键值对。 它使您可以使用键快速检索,添加,删除,修改值。 字典与我们在其他语言上称为关联数组或哈希的非常相似。
**注意**:
字典是可变的。
## 创建字典
* * *
可以使用一对大括号(`{}`)创建字典。 字典中的每个项目都由一个键,一个冒号,一个值组成。 每个项目都用逗号(`,`)分隔。 让我们举个例子。
```py
friends = {
'tom' : '111-222-333',
'jerry' : '666-33-111'
}
```
这里`friends`是有两个项目的字典。 需要注意的一点是,键必须是可哈希的类型,但是值可以是任何类型。 字典中的每个键都必须是唯一的。
```py
>>> dict_emp = {} # this will create an empty dictionary
```
## 检索,修改和向字典中添加元素
* * *
要从字典中获取项目,请使用以下语法:
```py
>>> dictionary_name['key']
```
```py
>>> friends['tom']
'111-222-333'
```
如果字典中存在键,则将返回值,否则将引发`KeyError`异常。 要添加或修改项目,请使用以下语法:
```py
>>> dictionary_name['newkey'] = 'newvalue'
```
```py
>>> friends['bob'] = '888-999-666'
>>> friends
{'tom': '111-222-333', 'bob': '888-999-666', 'jerry': '666-33-111'}
```
## 从字典中删除项目
* * *
```py
>>> del dictionary_name['key']
```
```py
>>> del friends['bob']
>>> friends
{'tom': '111-222-333', 'jerry': '666-33-111'}
```
如果找到键,则该项目将被删除,否则将抛出`KeyError`异常。
## 遍历字典中的项目
* * *
您可以使用`for`循环遍历字典中的元素。
```py
>>> friends = {
... 'tom' : '111-222-333',
... 'jerry' : '666-33-111'
...}
>>>
>>> for key in friends:
... print(key, ":", friends[key])
...
tom : 111-222-333
jerry : 666-33-111
>>>
>>>
```
## 查找字典的长度
* * *
您可以使用`len()`函数查找字典的长度。
```py
>>> len(friends)
2
```
## `in`和`not in`运算符
* * *
`in`和`not in`运算符检查字典中是否存在键。
```py
>>> 'tom' in friends
True
>>> 'tom' not in friends
False
```
## 字典中的相等测试
* * *
`==`和`!=`运算符告诉字典是否包含相同的项目。
```py
>>> d1 = {"mike":41, "bob":3}
>>> d2 = {"bob":3, "mike":41}
>>> d1 == d2
True
>>> d1 != d2
False
>>>
```
**注意**:
您不能使用`<`,`>`,`>=`,`<=`等其他关系运算符来比较字典。
## 字典方法
* * *
Python 提供了几种内置的方法来处理字典。
| 方法 | 描述 |
| --- | --- |
| `popitem()` | 返回字典中随机选择的项目,并删除所选项目。 |
| `clear()` | 删除字典中的所有内容 |
| `keys()` | 以元组形式返回字典中的键 |
| `values()` | 以元组形式返回字典中的值 |
| `get(key)` | 键的返回值,如果找不到键,则返回`None`,而不是引发`KeyError`异常 |
| `pop(key)` | 从字典中删除该项目,如果找不到该键,则会抛出`KeyError` |
```py
>>> friends = {'tom': '111-222-333', 'bob': '888-999-666', 'jerry': '666-33-111'}
>>>
>>> friends.popitem()
('tom', '111-222-333')
>>>
>>> friends.clear()
>>>
>>> friends
{}
>>>
>>> friends = {'tom': '111-222-333', 'bob': '888-999-666', 'jerry': '666-33-111'}
>>>
>>> friends.keys()
dict_keys(['tom', 'bob', 'jerry'])
>>>
>>> friends.values()
dict_values(['111-222-333', '888-999-666', '666-33-111'])
>>>
>>> friends.get('tom')
'111-222-333'
>>>
>>> friends.get('mike', 'Not Exists')
'Not Exists'
>>>
>>> friends.pop('bob')
'888-999-666'
>>>
>>> friends
{'tom': '111-222-333', 'jerry': '666-33-111'}
```
在下一篇文章中,我们将学习 [Python 元组](/python-tuples/)。
* * *
* * *
- 初级 Python
- python 入门
- 安装 Python3
- 运行 python 程序
- 数据类型和变量
- Python 数字
- Python 字符串
- Python 列表
- Python 字典
- Python 元组
- 数据类型转换
- Python 控制语句
- Python 函数
- Python 循环
- Python 数学函数
- Python 生成随机数
- Python 文件处理
- Python 对象和类
- Python 运算符重载
- Python 继承与多态
- Python 异常处理
- Python 模块
- 高级 Python
- Python *args和**kwargs
- Python 生成器
- Python 正则表达式
- 使用 PIP 在 python 中安装包
- Python virtualenv指南
- Python 递归函数
- __name__ == "__main__"是什么?
- Python Lambda 函数
- Python 字符串格式化
- Python 内置函数和方法
- Python abs()函数
- Python bin()函数
- Python id()函数
- Python map()函数
- Python zip()函数
- Python filter()函数
- Python reduce()函数
- Python sorted()函数
- Python enumerate()函数
- Python reversed()函数
- Python range()函数
- Python sum()函数
- Python max()函数
- Python min()函数
- Python eval()函数
- Python len()函数
- Python ord()函数
- Python chr()函数
- Python any()函数
- Python all()函数
- Python globals()函数
- Python locals()函数
- 数据库访问
- 安装 Python MySQLdb
- 连接到数据库
- MySQLdb 获取结果
- 插入行
- 处理错误
- 使用fetchone()和fetchmany()获取记录
- 常见做法
- Python:如何读取和写入文件
- Python:如何读取和写入 CSV 文件
- 用 Python 读写 JSON
- 用 Python 转储对象