Python 字典定义
介绍
Python 中的字典(dictionary)是一种无序、可变的容器模型,用于存储键-值对。字典中的键必须是唯一的,而值可以是任意数据类型。字典是 Python 中非常常用的数据结构之一,可以用于处理各种实际问题。本文将详细介绍 Python 字典的定义和使用。
字典的定义
字典可以使用大括号 {}
或者函数 dict()
来定义。以下是使用大括号定义字典的示例:
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
print(my_dict)
输出结果为:{'name': 'John', 'age': 25, 'city': 'New York'}
在上述示例中,我们定义了一个字典 my_dict
,其中包含了三个键-值对。键 'name'
的值是 'John'
,键 'age'
的值是 25,键 'city'
的值是 'New York'
。使用 ,
分隔不同的键-值对。
也可以使用函数 dict()
来定义字典:
my_dict = dict(name='John', age=25, city='New York')
print(my_dict)
输出结果同样为:{'name': 'John', 'age': 25, 'city': 'New York'}
这种方式使用的是关键字参数,可以更加灵活地定义字典。
字典中的键必须是唯一的,如果多次使用同一个键,则后面的值会覆盖前面的值。例如:
my_dict = {'name': 'John', 'age': 25, 'name': 'Mike'}
print(my_dict)
输出结果为:{'name': 'Mike', 'age': 25}
在上述示例中,键 'name'
被使用两次,但是后面的值 'Mike'
覆盖了前面的值 'John'
。
字典的基本操作
访问字典中的值
可以使用键来访问字典中对应的值。例如:
my_dict = {'name': 'John', 'age': 25}
print(my_dict['name']) # 输出:John
print(my_dict['age']) # 输出:25
如果使用不存在的键来访问字典中的值,会抛出 KeyError
异常。为了避免异常,可以使用 get()
方法来访问值,如果键不存在,则返回指定的默认值。例如:
my_dict = {'name': 'John', 'age': 25}
print(my_dict.get('name')) # 输出:John
print(my_dict.get('city')) # 输出:None
print(my_dict.get('city', '')) # 输出:'',使用自定义的默认值
修改字典中的值
可以通过赋值语句来修改字典中的值。例如:
my_dict = {'name': 'John', 'age': 25}
my_dict['age'] = 30
print(my_dict) # 输出:{'name': 'John', 'age': 30}
在上述示例中,我们将键 'age'
对应的值从 25 修改为 30。
添加新的键-值对
可以使用赋值语句添加新的键-值对。例如:
my_dict = {'name': 'John', 'age': 25}
my_dict['city'] = 'New York'
print(my_dict) # 输出:{'name': 'John', 'age': 25, 'city': 'New York'}
在上述示例中,我们添加了一个新的键 'city'
,其对应的值是 'New York'
。
删除键-值对
可以使用 del
关键字删除字典中的键-值对。例如:
my_dict = {'name': 'John', 'age': 25}
del my_dict['age']
print(my_dict) # 输出:{'name': 'John'}
在上述示例中,我们删除了键 'age'
对应的键-值对。
可以使用 pop()
方法来删除指定键,并返回被删除的值。如果键不存在,则返回指定的默认值。例如:
my_dict = {'name': 'John', 'age': 25}
age = my_dict.pop('age')
print(age) # 输出:25
print(my_dict) # 输出:{'name': 'John'}
在上述示例中,我们删除了键 'age'
对应的键-值对,并将其值保存到变量 age
中。
遍历字典
可以使用 for
循环遍历字典的键、值或者键-值对。例如,遍历字典的键:
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
for key in my_dict:
print(key)
输出结果为:
name
age
city
要遍历字典的值,可以使用 values()
方法。例如:
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
for value in my_dict.values():
print(value)
输出结果为:
John
25
New York
要同时遍历字典的键和值,可以使用 items()
方法。例如:
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
for key, value in my_dict.items():
print(key, value)
输出结果为:
name John
age 25
city New York
字典的常用方法
keys()
方法
keys()
方法返回一个包含字典所有键的视图。
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
keys = my_dict.keys()
print(keys) # 输出:dict_keys(['name', 'age', 'city'])
在上述示例中,keys()
方法返回一个 dict_keys
对象,包含了字典的所有键。可以将其转换为列表,或者直接在循环中进行遍历。
values()
方法
values()
方法返回一个包含字典所有值的视图。
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
values = my_dict.values()
print(values) # 输出:dict_values(['John', 25, 'New York'])
在上述示例中,values()
方法返回一个 dict_values
对象,包含了字典的所有值。可以将其转换为列表,或者直接在循环中进行遍历。
items()
方法
items()
方法返回一个包含字典所有键-值对的视图。
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
items = my_dict.items()
print(items) # 输出:dict_items([('name', 'John'), ('age', 25), ('city', 'New York')])
在上述示例中,items()
方法返回一个 dict_items
对象,包含了字典的所有键-值对。可以将其转换为列表,或者直接在循环中进行遍历。
clear()
方法
clear()
方法用于清空字典中的所有键-值对。
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
my_dict.clear()
print(my_dict) # 输出:{}
在上述示例中,clear()
方法清空了字典 my_dict
中的所有键-值对。
copy()
方法
copy()
方法用于创建一个字典的副本。
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
new_dict = my_dict.copy()
print(new_dict) # 输出:{'name': 'John', 'age': 25, 'city': 'New York'}
在上述示例中,我们通过 copy()
方法创建了字典 new_dict
,它是字典 my_dict
的一个副本。
update()
方法
update()
方法用于将一个字典的键-值对更新到另一个字典中。
my_dict = {'name': 'John', 'age': 25}
extra_dict = {'city': 'New York', 'country': 'USA'}
my_dict.update(extra_dict)
print(my_dict) # 输出:{'name': 'John', 'age': 25, 'city': 'New York', 'country': 'USA'}
在上述示例中,我们使用 update()
方法将字典 extra_dict
的键-值对更新到字典 my_dict
中。
总结
本文介绍了 Python 字典的定义和基本操作,包括访问、修改、添加、删除键-值对以及遍历字典。还介绍了字典常用的方法,如 keys()
、values()
、items()
、clear()
、copy()
和 update()
。字典是一个非常有用的数据结构,能够高效地存储和访问键-值对。掌握字典的使用方法对于解决各种实际问题非常重要。