Python 字典

引言
Python 字典是一种可变、无序、可哈希的数据类型,用于存储键值对。在 Python 中,字典以大括号 {} 来表示,其中每个键值对之间使用逗号 , 分隔。字典中的键必须是不可变的类型,如字符串、数字或元组,而值可以是任意类型的对象。本文将详细介绍字典的特性、创建和访问、修改和删除、常用方法、字典推导式等内容。
字典的特性
- 字典中的元素是没有顺序的,即不能通过索引来访问。
- 字典中的键是唯一的,不能重复。
- 字典中的键必须是不可变的类型,如字符串、数字或元组。
- 字典中的值可以是任意类型的对象,如数字、字符串、列表、字典等。
- 字典是可变的,可以根据需要修改、添加或删除键值对。
创建和访问字典
可以使用大括号 {} 或 dict() 函数来创建一个空字典。以下是创建字典的示例代码:
# 创建一个空字典
empty_dict = {}
print(empty_dict) # 输出: {}
# 使用字面量创建字典
person = {
"name": "Tom",
"age": 24,
"gender": "male"
}
print(person) # 输出: {'name': 'Tom', 'age': 24, 'gender': 'male'}
# 使用 dict() 函数创建字典
vehicle = dict(make="BMW", model="X5", year=2020)
print(vehicle) # 输出: {'make': 'BMW', 'model': 'X5', 'year': 2020}
可以通过索引访问字典中的值,索引是键。以下是访问字典的示例代码:
person = {
"name": "Tom",
"age": 24,
"gender": "male"
}
print(person["name"]) # 输出: Tom
print(person["age"]) # 输出: 24
print(person["gender"]) # 输出: male
如果访问一个不存在的键,则会抛出 KeyError 异常。为了避免出现异常,可以使用 get() 方法来访问字典中的值。以下是使用 get() 方法访问字典的示例代码:
person = {
"name": "Tom",
"age": 24,
"gender": "male"
}
print(person.get("name")) # 输出: Tom
print(person.get("height")) # 输出: None
print(person.get("height", 180)) # 输出: 180
修改和删除字典
可以通过赋值语句修改字典中的值,如果给定的键不存在,则会创建一个新的键值对。以下是修改字典的示例代码:
person = {
"name": "Tom",
"age": 24,
"gender": "male"
}
person["age"] = 25
person["height"] = 180
print(person) # 输出: {'name': 'Tom', 'age': 25, 'gender': 'male', 'height': 180}
可以使用 del 关键字删除字典中的键值对。以下是删除字典键值对的示例代码:
person = {
"name": "Tom",
"age": 24,
"gender": "male"
}
del person["age"]
print(person) # 输出: {'name': 'Tom', 'gender': 'male'}
常用方法
Python 字典提供了许多常用的方法来操作字典。以下是一些常用的方法及其说明:
keys()方法返回字典中所有的键。values()方法返回字典中所有的值。items()方法返回字典中所有的键值对。get()方法根据指定的键获取对应的值,如果键不存在,则返回默认值(可选)。update()方法将指定字典中的键值对添加到当前字典中。pop()方法根据指定的键删除键值对,并返回对应的值。popitem()方法随机删除字典中的一个键值对,并返回被删除的键值对。clear()方法删除字典中的所有键值对。
以下是使用这些常见方法的示例代码:
person = {
"name": "Tom",
"age": 24,
"gender": "male"
}
print(person.keys()) # 输出: dict_keys(['name', 'age', 'gender'])
print(person.values()) # 输出: dict_values(['Tom', 24, 'male'])
print(person.items()) # 输出: dict_items([('name', 'Tom'), ('age', 24), ('gender', 'male')])
print(person.get("name")) # 输出: Tom
print(person.get("height")) # 输出: None
print(person.get("height", 180)) # 输出: 180
person2 = {
"country": "USA",
"language": "English"
}
person.update(person2)
print(person) # 输出: {'name': 'Tom', 'age': 24, 'gender': 'male', 'country': 'USA', 'language': 'English'}
age = person.pop("age")
print(age) # 输出: 24
item = person.popitem()
print(item) # 输出: ('language', 'English')
person.clear()
print(person) # 输出: {}
字典推导式
和列表推导式类似,Python 还支持字典推导式,用来快速创建字典。字典推导式的语法为 {key: value for element in iterable}。以下是使用字典推导式创建字典的示例代码:
numbers = [1, 2, 3, 4, 5]
square_dict = {num: num**2 for num in numbers}
print(square_dict) # 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
总结
本文介绍了 Python 字典的特性、创建和访问、修改和删除、常用方法以及字典推导式等内容。通过学习和掌握字典的使用,可以在 Python 编程中更加灵活地处理键值对数据。
极客教程