字典的定义
在Python中,字典(Dictionary)是一种无序的、可变的、有键(key)和值(value)对应关系的集合数据类型。字典用大括号 {}
来表示,每个元素是一个键值对,键和值之间用冒号 :
分隔,键值对之间用逗号 ,
分隔。字典的键必须是唯一的,但值则不必。字典是一种高效的数据结构,可以用于快速查找和检索数据。
创建字典
可以使用大括号 {}或者 dict() 函数来创建一个字典。字典中的键是唯一的,且必须是不可变的(如字符串、数字或元组),而值可以是任意类型的对象。
# 创建一个空字典
my_dict = {}
# 创建一个包含键值对的字典
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# 使用 dict() 函数创建带有键值对的字典
my_dict = dict(key1='value1', key2='value2', key3='value3')
# 从列表创建字典,列表中的元素是由键值对组成的元组
my_dict = dict([('key1', 'value1'), ('key2', 'value2'), ('key3', 'value3')])
访问字典中的值
可以使用方括号 [] 来访问字典中的值,将键作为索引传递给字典即可获取对应的值。
# 使用键访问值
print(my_dict['name']) # 输出: John
# 使用get方法访问值,可以设置默认值
print(my_dict.get('age')) # 输出: 30
print(my_dict.get('gender', 'Male')) # 如果键 'gender' 不存在,返回默认值 'Male'
如果访问不存在的键,会触发 KeyError 异常。可以使用 get() 方法来避免异常,如果键不存在,get() 方法会返回指定的默认值。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print(my_dict.get('name')) # 输出: John
print(my_dict.get('gender', 'Male')) # 输出: Male,键'gender'不存在,返回默认值'Male'
修改字典
字典中的值是可变的,可以通过键来修改字典中的值
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
my_dict['age'] = 26 # 修改键'age'对应的值为26
print(my_dict) # 输出: {'name': 'John', 'age': 26, 'city': 'New York'}
如果键不存在,赋值操作会创建一个新的键值对。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
my_dict['gender'] = 'male' # 键'gender'不存在,创建新的键值对
print(my_dict) # 输出: {'name': 'John', 'age': 30, 'city': 'New York', 'gendder': 'male'}
删除字典元素
可以使用 del 关键字来删除字典中的元素,通过指定要删除的键来完成删除操作。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
del my_dict['age'] # 删除键'age'及其对应的值
print(my_dict) # 输出: {'name': 'John', 'city': 'New York'}
如果尝试删除不存在的键,会触发 KeyError 异常。可以使用 pop() 方法来删除键,并返回对应的值,如果键不存在,pop() 方法会返回指定的默认值。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
removed_age = my_dict.pop('age') # 删除键'age'及其对应的值,并返回被删除的值
print(my_dict) # 输出: {'name': 'John', 'city': 'New York'}
print(removed_age) # 输出: 30
removed_gender = my_dict.pop('gender', 'Male') # 键'gender'不存在,返回默认值'Male'
print(removed_gender) # 输出: Male
还可以使用 popitem() 方法删除字典中的最后一个键值对,并返回被删除的键值对。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
removed_item = my_dict.popitem() # 删除最后一个键值对,并返回被删除的键值对
print(my_dict) # 输出: {'name': 'John', 'age': 30}
print(removed_item) # 输出: ('city', 'New York')
字典的常用操作
遍历字典
可以使用 for 循环遍历字典的键或值,或者同时遍历键和值。
遍历键:
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
for key in my_dict:
print(key) # 输出: name, age, city
遍历值:
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
for value in my_dict.values():
print(value) # 输出: John, 30, New York
遍历键和值:
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
for key, value in my_dict.items():
print(key, value) # 输出: name John, age 30, city New York
检查键是否存在
可以使用 in 关键字来检查某个键是否存在于字典中。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print('name' in my_dict) # 输出: True
print('gender' in my_dict) # 输出: False
获取字典长度
在Python中,可以使用len()函数来获取字典的长度,即键值对的数量。以下是使用示例:
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
length = len(my_dict)
print(length) # 输出: 3
在上述示例中,len(my_dict)返回字典my_dict中键值对的数量,即3。
字典的常用方法
除了上述提到的 get()、pop()、popitem() 方法外,字典还提供了其他常用方法:
1.clear(): 清空字典中的所有键值对。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
my_dict.clear()
print(my_dict) # 输出: {}
2.copy(): 创建字典的副本(浅拷贝)。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
new_dict = my_dict.copy()
print(new_dict) # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}
3.update(): 将一个字典的键值对更新到另一个字典中。
my_dict = {'name': 'John', 'age': 30}
new_data = {'city': 'New York', 'gender': 'female'}
my_dict.update(new_data)
print(my_dict) # 输出: {'name': 'John', 'age': 30, 'city': 'New York', 'gender': 'female'}
4.keys(): 返回一个包含字典所有键的视图(类似于列表)。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
keys = my_dict.keys()
print(keys) # 输出: dict_keys(['name', 'age', 'city'])
5.values(): 返回一个包含字典所有值的视图(类似于列表)。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
values = my_dict.values()
print(values) # 输出: dict_values(['John', 30, 'New York'])
6.items(): 返回一个包含字典所有键值对的视图(类似于列表中的元组)。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
items = my_dict.items()
print(items) # 输出: dict_items([('name', 'John'), ('age', 30), ('city', 'New York')])
除了内置的字典方法,还可以使用条件语句、循环等结构来处理字典,以实现更复杂的操作。
当处理字典时,可以使用条件语句(如if语句)和循环结构(如for循环)来执行不同的操作。下面是一些示例:
1.使用条件语句处理字典
可以使用条件语句来检查字典中的特定键是否存在,或根据键值对的值执行不同的操作。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# 检查键是否存在
if 'name' in my_dict:
print("Name:", my_dict['name'])
else:
print("Name not found")
# 根据值执行不同操作
if my_dict['age'] >= 18:
print("Adult")
else:
print("Minor")
使用条件语句检查键’name’是否存在于字典中,然后根据键值对的值判断一个人是否成年。
2.使用循环处理字典
可以使用循环结构遍历字典的键、值或键值对,并执行相应的操作。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# 遍历键
for key in my_dict:
print("Key:", key)
# 遍历值
for value in my_dict.values():
print("Value:", value)
# 遍历键值对
for key, value in my_dict.items():
print("Key:", key, "Value:", value)
使用循环遍历字典的键、值和键值对,并打印相应的信息。
以上大概就是新同学们能在字典中常用到的操作了。