Python 字典

Python 字典

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 编程中更加灵活地处理键值对数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程