在Python中,字典(Dictionary)是一种非常重要的组合数据类型,它允许我们存储键值对(key-value pairs)的集合。字典中的每个元素都是一个键值对,其中键(key)是唯一的,并且是不可变的(如整数、浮点数、字符串或元组),而值(value)可以是任何类型。字典提供了一种灵活的方式来存储和检索数据。下面我们将详细介绍Python字典类型及其常用操作,并通过代码实例来加深理解。
一、字典的创建
在Python中,字典可以通过一对大括号{}
来创建,键和值之间使用冒号:
分隔,键值对之间使用逗号,
分隔。
代码实例1:字典的创建
# 使用大括号创建字典 my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'} print(my_dict) # 输出:{'name': 'Alice', 'age': 30, 'city': 'New York'} # 使用dict()函数创建字典 another_dict = dict(name='Bob', age=25, country='Canada') print(another_dict) # 输出:{'name': 'Bob', 'age': 25, 'country': 'Canada'}
二、字典的访问
字典中的值可以通过键来访问。如果尝试访问不存在的键,Python会抛出一个KeyError
异常。为了避免这种情况,可以使用get()
方法,该方法在键不存在时返回指定的默认值(默认为None
)。
代码实例2:字典的访问
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'} # 访问字典中的值 print(my_dict['name']) # 输出:Alice print(my_dict.get('age')) # 输出:30 # 尝试访问不存在的键,会抛出KeyError # print(my_dict['country']) # 注释掉,否则会抛出KeyError # 使用get()方法避免KeyError print(my_dict.get('country', 'Unknown')) # 输出:Unknown
三、字典的修改
字典是可变的,因此可以修改字典中的值或添加新的键值对。
代码实例3:字典的修改
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'} # 修改字典中的值 my_dict['age'] = 31 print(my_dict) # 输出:{'name': 'Alice', 'age': 31, 'city': 'New York'} # 添加新的键值对 my_dict['country'] = 'USA' print(my_dict) # 输出:{'name': 'Alice', 'age': 31, 'city': 'New York', 'country': 'USA'}
四、字典的删除
可以使用del
关键字或pop()
方法来删除字典中的键值对。pop()
方法还可以返回被删除的值。
代码实例4:字典的删除
my_dict = {'name': 'Alice', 'age': 31, 'city': 'New York', 'country': 'USA'} # 使用del关键字删除键值对 del my_dict['age'] print(my_dict) # 输出:{'name': 'Alice', 'city': 'New York', 'country': 'USA'} # 使用pop()方法删除键值对并返回其值 age = my_dict.pop('city') print(my_dict) # 输出:{'name': 'Alice', 'country': 'USA'} print(age) # 输出:'New York' # 尝试pop不存在的键,会抛出KeyError,但可以提供默认值 country = my_dict.pop('country', 'Unknown') print(my_dict) # 输出:{'name': 'Alice'} print(country) # 输出:'USA' # 如果键不存在且没有提供默认值,则会抛出KeyError # country = my_dict.pop('state') # 注释掉,否则会抛出KeyError
五、字典的遍历
可以使用for
循环来遍历字典中的键、值或键值对。
代码实例5:字典的遍历
my_dict = {'name': 'Alice', 'age': 31, 'city': 'New York'} # 遍历字典的键 for key in my_dict: print(