上一篇:【Python】入门到放弃之第八章《元组》
下一篇:【Python】入门到放弃之第十章《控制流语句》
前言
这是本系列的第九章节内容,《字典》。
一、定义
-
在Python中,字典(Dictionary)是一种内置的数据结构,用于存储键值对(key-value pairs)。字典是可变的,意味着你可以在创建字典后添加、删除或修改其中的元素。
-
字典的键(key)必须是唯一的,并且是不可变的(即,它们必须是不可变数据类型,如字符串、数字或元组,但不能是列表或字典等可变类型)。字典的值(value)则可以是任何数据类型,包括列表、元组、字典等。
二、创建字典
- 使用大括号{}和键值对(由冒号:分隔)来创建一个字典,每个键值对之间用逗号(,)分隔。
代码如下(示例):
my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming'}
三、访问字典元素
- 通过键来访问字典中的值。
- 如果尝试访问不存在的键,Python会抛出一个KeyError。为了避免这种情况,可以使用get()方法,它允许指定一个默认值,以防键不存在。
代码如下(示例):
my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming'}
print(my_dict['name']) # 输出: 花凝雨
print(my_dict.get('job', 'Not specified')) # 输出: Not specified
四、添加和修改元素
- 通过给字典分配一个新的键值对来添加新的元素,或者更新现有键的值。
代码如下(示例):
my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming'}
my_dict['job'] = 'Bricklayer' # 添加新元素
my_dict['age'] = 31 # 修改现有元素的值
print(my_dict['job']) # 输出: Bricklayer
print(my_dict.get('age', 'Not specified')) # 输出: 31
五、删除元素
代码如下(示例):
my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming', 'job': 'Bricklayer'}
# del语句可以删除字典中的元素
del my_dict['job']
# pop() 方法删除并返回指定键的值,如果键不存在,可以指定一个默认值。
age = my_dict.pop('age', None) # 删除并返回'age'的值,如果不存在则返回None
# popitem() 方法删除并返回字典中的最后一个键值对(Python 3.7+中按插入顺序)。注意,这个方法在空字典上调用时会引发KeyError。
item = my_dict.popitem() # 删除并返回最后一个键值对
print(my_dict) # 输出:{'name': '花凝雨'}
六、遍历字典
代码如下(示例):
my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming', 'job': 'Bricklayer'}
# 遍历字典的键
for key in my_dict:
print(key)
print()
# 遍历字典的键值对
for key, value in my_dict.items():
print(f"{key}: {value}")
print()
# 遍历字典的键和对应的值(但值以枚举形式出现)
for key, value in enumerate(my_dict):
# 注意:这里value实际上是键,不是值。枚举通常用于列表或元组。
# 对于字典,你应该直接使用.items()来遍历键值对。
print(f"Index {key}: Key {value}")
# 正确的枚举字典值的方式(如果有顺序要求,Python 3.7+)
for index, (key, value) in enumerate(my_dict.items()):
print(f"Index {index}: Key {key}, Value {value}")
输出如下(示例):
name
age
city
job
name: 花凝雨
age: 30
city: Maoming
job: Bricklayer
Index 0: Key name
Index 1: Key age
Index 2: Key city
Index 3: Key job
Index 0: Key name, Value 花凝雨
Index 1: Key age, Value 30
Index 2: Key city, Value Maoming
Index 3: Key job, Value Bricklayer
七、检查键是否存在
- 使用in关键字来检查字典中是否存在某个键。
代码如下(示例):
my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming', 'job': 'Bricklayer'}
if 'name' in my_dict:
print("The key 'name' exists.") # 输出:The key 'name' exists.
八、字典的其他方法
- clear():删除字典中的所有项。
- copy():返回字典的一个浅拷贝。
- fromkeys():使用给定的键创建新字典,每个键都映射到相同的值。
- keys()、values()、items():分别返回字典中的键、值、键值对视图的迭代器。
- setdefault():如果键不存在于字典中,则添加键并将值设为默认值。
- update():使用另一个字典的键值对来更新当前字典。
总结
以上,就是Python中字典的全部内容。字典在Python中非常有用,因为它们提供了一种快速访问数据的方式。通过使用键作为索引,用户可以几乎立即检索到与之关联的值,而无需遍历整个数据结构。这使得字典成为存储和访问大量数据的理想选择,尤其是在需要频繁查找、插入和删除元素时。