赞
踩
目录
专栏:python学习笔记
Python 字典是一种强大而灵活的数据结构,非常适合存储和管理键值对。
Python 字典是一种映射类型的数据结构,其中的数据以键值对(key-value pairs)的形式存储。字典的实现基于哈希表,使得键值对的查找和操作速度非常快。
小李很执着理解: 想象字典是一种超级便利的“查找表”,你可以通过独一无二的“名字”(键)快速找到对应的“内容”(值)。
字典在很多场景下都非常有用,例如:
- 配置文件: 存储应用程序的配置参数。
- 计数器: 统计元素出现的频率。
- 缓存: 存储计算结果以避免重复计算。
- 快速查找: 通过键快速访问数据。
字典有几个重要的特点,使其在各种应用场景中非常有用。
字典中的每个键必须是唯一的。如果试图插入一个重复的键,后者会覆盖前者。
- a = {'x': 1, 'y': 2}
- a['x'] = 3
- print(a)
- # 输出: {'x': 3, 'y': 2}
小李很执着理解: 字典就像一份购物清单,每个项目都有独特的名字,如果名字重复,新的会替换旧的。
字典是可变的,这意味着可以动态地增加、修改和删除键值对。
- a = {'x': 1}
- a['y'] = 2
- print(a)
- # 输出: {'x': 1, 'y': 2}
小李很执着理解: 你可以随时往购物清单里添加或删除项目。
在 Python 3.7 之前,字典中的元素没有顺序。从 Python 3.7 开始,字典按插入顺序保存键值对。
- a = {'x': 1, 'y': 2, 'z': 3}
- print(a)
- # 输出: {'x': 1, 'y': 2, 'z': 3}
小李很执着理解: 虽然购物清单里项目的顺序不重要,但从 Python 3.7 开始,它会记住你添加项目的顺序。
Python 提供了多种方式来创建字典:
{}
符号这是最常用的创建字典的方法:
- a = {'x': 1, 'y': 2}
- print(a)
- # 输出: {'x': 1, 'y': 2}
小李很执着理解: 用大括号 {}
包裹一对对的名字和值,就能创建一个字典。
dict()
工厂方法适用于从其他数据结构(如元组列表)创建字典的情况:
- a = dict([('x', 1), ('y', 2)])
- print(a)
- # 输出: {'x': 1, 'y': 2}
小李很执着理解: 用 dict()
函数也能创建字典,只要提供成对的名字和值。
fromkeys()
方法用于创建包含指定键并且所有值相同的字典:
- a = {}.fromkeys(('x', 'y'), 0)
- print(a)
- # 输出: {'x': 0, 'y': 0}
小李很执着理解: fromkeys()
方法创建的字典里所有的名字都有相同的值。
在字典中,键和值的类型不需要相同。例如,可以有整数键和字符串值的组合:
- a = {1: 'apple', 'b': 2.5}
- print(a)
- # 输出: {1: 'apple', 'b': 2.5}
小李很执着理解: 字典里的名字和内容可以是任何类型,比如数字对应水果,字母对应小数。
使用方括号 []
可以直接访问字典中的值:
- a = {'x': 10, 'y': 20}
- print(a['x']) # 输出: 10
KeyError
错误。可以使用 get()
方法避免 KeyError
:
- value = a.get('z', '默认值')
- print(value) # 输出: 默认值
小李很执着理解: 用名字查找内容就像查字典,用 get()
方法可以避免找不到名字时报错。
可以使用 for
循环遍历字典中的键和值:
- a = {'x': 0, 'y': 0}
- for key in a:
- print(key, a[key])
- # 输出(顺序可能不同):
- # x 0
- # y 0
可以使用 items()
方法同时遍历键和值:
- for key, value in a.items():
- print(key, value)
小李很执着理解: 用 for
循环可以遍历字典里的所有名字和内容,用 items()
方法可以同时获取名字和内容。
使用方括号 []
可以新增或修改字典元素:
- a = {}
- a[1] = 100
- print(a) # 输出: {1: 100}
小李很执着理解: 用方括号 []
给字典增加新元素。
- a[1] = 200
- print(a) # 输出: {1: 200}
使用 update()
方法可以批量更新字典:
- a.update({'b': 300, 'c': 400})
- print(a) # 输出: {1: 200, 'b': 300, 'c': 400}
小李很执着理解: 用方括号 []
修改字典里的内容,用 update()
方法一次更新多个内容。
del
删除某个键值对- a = {1: 100}
- del a[1]
- print(a) # 输出: {}
clear()
方法清空整个字典- a = {1: 100, 2: 200}
- a.clear()
- print(a) # 输出: {}
pop()
函数删除键值对并获取到对应的值- a = {1: 100, 2: 200}
- value = a.pop(1)
- print(value) # 输出: 100
- print(a) # 输出: {2: 200}
popitem()
方法可以删除并返回最后一个键值对(按插入顺序):
- a = {1: 100, 2: 200}
- key, value = a.popitem()
- print(key, value) # 输出: 2 200
- print(a) # 输出: {1: 100}
小李很执着理解: 用 del
删除单个元素,用 clear()
清空字典,用 pop()
删除并获取元素内容。
可以使用 in
或 not in
来判定一个键是否在字典中:
- a = {'x': 10, 'y': 20}
- print('x' in a) # 输出: True
- print('z' in a) # 输出: False
in
操作符只检查键是否存在,不检查值。小李很执着理解: 用 in
判断字典里是否有某个名字。
字典的比较操作符与序列不同。两个字典只有在键和值完全相同时才相等:
- a = {'x': 1, 'y': 2}
- b = {'x': 1, 'y': 2}
- print(a == b) # 输出: True
==
和 !=
来比较字典。小李很执着理解: 用 ==
比较字典是否相等,字典的大小关系通常不需要比较。
Python 字典是一种非常灵活且高效的数据结构,适用于需要快速查找和存储键值对的场景。字典的强大功能使其成为 Python 编程中不可或缺的一部分。掌握字典的使用,可以大大提高代码的效率和可读性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。