人生苦短, 我选 Python
前文传送门
小白学 Python(1): 开篇 https://www.geekdigging.com/2019/10/12/2870915863/
小白学 Python(2): 基础数据类型(上) https://www.geekdigging.com/2019/10/13/2870915864/
小白学 Python(3): 基础数据类型(下) https://www.geekdigging.com/2019/10/15/25090937/
小白学 Python(4): 变量基础操作 https://www.geekdigging.com/2019/10/17/2392286754/
小白学 Python(5): 基础运算符(上) https://www.geekdigging.com/2019/10/18/999362065/
小白学 Python(6): 基础运算符(下) https://www.geekdigging.com/2019/10/20/2416267271/
小白学 Python(7): 基础流程控制(上) https://www.geekdigging.com/2019/10/22/979409150/
小白学 Python(8): 基础流程控制(下) https://www.geekdigging.com/2019/10/23/2184234984/
小白学 Python(9): 基础数据结构(列表)(上) https://www.geekdigging.com/2019/10/23/3066758654/
小白学 Python(10): 基础数据结构(列表)(下) https://www.geekdigging.com/2019/10/25/1277177083/
小白学 Python(11): 基础数据结构(元组) https://www.geekdigging.com/2019/10/26/1783681326/
字典
我先问一下, 有没用过字典的么?
我们先看一下现实中字典长啥样.
嗯, 这本字典看起来很有年代感了.
那么 Python 中的字典是什么样呢?
我们一边看代码一边聊:
创建字典
字典由一组键 (key) 值(value)对组成的, 类似于:
{key1: value1, key2: value2}
这样一种形式.
字典的每个键值 (key=>value) 对用冒号 : 分割.
每个对之间用逗号 , 分割.
整个字典包括在花括号 {} 中.
- dict1 = {
- 'name': 'geekdigging', 'age': 2
- }
- print(dict1)
- print(type(dict1))
结果如下:
- {
- 'name': 'geekdigging', 'age': 2
- }
- <class 'dict'>
注意: 键必须是唯一的, 但值则不必. 值可以取任何数据类型, 但键必须是不可变的, 如字符串, 数字或元组.
我们创建一个奇葩一点的字典(该字典无任何含义, 仅供演示):
- dict2 = {
- (1, 2, 3): '123', 'name': 'geekdigging', 2: [1, 2, 3]
- }
- print(dict2)
- print(type(dict2))
结果如下:
- {
- (1, 2, 3): '123', 'name': 'geekdigging', 2: [1, 2, 3]
- }
- <class 'dict'>
其实还可以这么创建:
- dict3 = dict(name = 'geekdigging', age = 2)
- print(dict3)
- print(type(dict3))
结果如下:
- {
- 'name': 'geekdigging', 'age': 2
- }
- <class 'dict'>
这种情况下, 键只能为字符串类型, 并且创建的时候字符串不能加引号, 加上就会直接报语法错误.
比如我们尝试将键变为数字:
dict3 = dict(1 = 'geekdigging', 2 = 2)
结果如下:
- File "D:/Development/Projects/python-learning/base-data-dict/Demo.py", line 13
- dict3 = dict(1 = 'geekdigging', 2 = 2)
- ^
- SyntaxError: keyword can't be an expression
访问字典中的值
语法: 字典名[键]
print(dict1['name'])
结果如下:
geekdigging
注意: 如果我们查找的键在字典中不存在, 会直接报错.
print(dict1['geekdigging'])
结果如下:
- Traceback (most recent call last):
- File "D:/Development/Projects/python-learning/base-data-dict/Demo.py", line 18, in <module>
- print(dict1['geekdigging'])
- KeyError: 'geekdigging'
报错信息是 KeyError , 说明我们的键错误.
如果要避免以上问题, 需要先查找当前键是否存在, 可以使用以下语句:
语法: 键 in 字典
那么上面的语句我们结合前面的流程控制, 可以改为以下:
- str = 'geekdigging'
- if str in dict1:
- print(dict1['geekdigging'])
- else:
- print('您查询的键', str, '不存在')
结果如下:
您查询的键 geekdigging 不存在
添加, 删除, 更新 字典中的键值对:
- # 添加
- dict1['a'] = 18
- print(dict1)
- # 更新
- dict1['name'] = 'www.geekdigging.com'
- print(dict1)
- # 删除
- del dict1['a']
- print(dict1)
结果如下:
- {
- 'name': 'geekdigging', 'age': 2, 'a': 18
- }
- {
- 'name': 'www.geekdigging.com', 'age': 2, 'a': 18
- }
- {
- 'name': 'www.geekdigging.com', 'age': 2
- }
希望各位同学在学习的过程中可以亲自动手实践一下示例代码, 毕竟自己不敲代码是永远学不会代码的:)
示例代码
本系列的所有代码小编都会放在代码管理仓库 GitHub 和 Gitee 上, 方便大家取用.
示例代码 - GitHub
示例代码 - Gitee
来源: http://www.tuicool.com/articles/AFNBRvE