Python 中的数据结构是指在 Python 中可用的数据类型,包括列表、元组、字典、集合等。下面我们将分别介绍这些数据结构的特点和使用方法。
列表(List)
列表是 Python 中最基本的数据结构之一,它可以存储任意类型的数据,包括数字、字符串、布尔值、列表、元组、字典等。列表用方括号 [] 包含,各个元素之间用逗号分隔。
创建列表
下面是一个创建列表的例子:
代码语言:python代码运行次数:0复制# 创建一个包含数字、字符串和布尔值的列表
my_list = [1, 2, 3, 'hello', True, False]
# 创建一个空列表
empty_list = []
访问列表元素
列表中的元素可以通过下标来访问,下标从 0 开始,负数下标表示从后往前数,例如 -1 表示最后一个元素。
代码语言:python代码运行次数:0复制# 访问列表中的第一个元素
print(my_list[0]) # 输出 1
# 访问列表中的最后一个元素
print(my_list[-1]) # 输出 False
切片
除了单个元素,我们还可以通过切片来访问列表的一部分。切片用冒号 : 分隔起始下标和终止下标,不包含终止下标对应的元素。
代码语言:python代码运行次数:0复制# 访问列表中的前三个元素
print(my_list[:3]) # 输出 [1, 2, 3]
# 访问列表中的第二个和第三个元素
print(my_list[1:3]) # 输出 [2, 3]
修改列表元素
列表中的元素是可变的,可以通过下标来修改它们的值。
代码语言:python代码运行次数:0复制# 修改列表中的第一个元素
my_list[0] = 100
# 输出修改后的列表
print(my_list) # 输出 [100, 2, 3, 'hello', True, False]
添加元素
列表中可以通过 append() 方法来添加元素。
代码语言:python代码运行次数:0复制# 向列表末尾添加一个元素
my_list.append('world')
# 输出修改后的列表
print(my_list) # 输出 [100, 2, 3, 'hello', True, False, 'world']
删除元素
列表中可以通过 del 语句或者 remove() 方法来删除元素。
代码语言:python代码运行次数:0复制# 删除列表中的第一个元素
del my_list[0]
# 输出修改后的列表
print(my_list) # 输出 [2, 3, 'hello', True, False, 'world']
# 删除列表中的字符串元素
my_list.remove('hello')
# 输出修改后的列表
print(my_list) # 输出 [2, 3, True, False, 'world']
元组(Tuple)
元组是一种不可变的序列,与列表类似,但元组中的元素不能修改。元组用圆括号 () 包含,各个元素之间用逗号分隔。
创建元组
下面是一个创建元组的例子:
代码语言:python代码运行次数:0复制# 创建一个包含数字、字符串和元组的元组
my_tuple = (1, 2, 3, 'hello', (4, 5, 6))
# 创建一个包含单个元素的元组
single_tuple = (1,)
访问元组元素
元组中的元素可以通过下标来访问,下标从 0 开始,负数下标表示从后往前数,例如 -1 表示最后一个元素。
代码语言:python代码运行次数:0复制# 访问元组中的第一个元素
print(my_tuple[0]) # 输出 1
# 访问元组中的最后一个元素
print(my_tuple[-1]) # 输出 (4, 5, 6)
切片
与列表类似,元组也支持切片操作。
代码语言:python代码运行次数:0复制# 访问元组中的前三个元素
print(my_tuple[:3]) # 输出 (1, 2, 3)
# 访问元组中的第二个和第三个元素
print(my_tuple[1:3]) # 输出 (2, 3)
元组不可变性
元组中的元素是不可变的,因此不能通过下标来修改它们的值。
代码语言:python代码运行次数:0复制# 修改元组中的第一个元素(错误示范)
my_tuple[0] = 100 # 报错:TypeError: 'tuple' object does not support item assignment
解构元组
元组可以通过解构的方式来获取其中的元素。
代码语言:python代码运行次数:0复制# 解构元组
a, b, c, d, e = my_tuple
# 输出解构后的变量
print(a, b, c, d, e) # 输出 1 2 3 hello (4, 5, 6)
字典(Dictionary)
字典是一种无序的键值对集合,键和值都可以是任意类型的数据。字典用花括号 {} 包含,每个键值对之间用冒号 : 分隔,键和值之间用逗号分隔。
创建字典
下面是一个创建字典的例子:
代码语言:python代码运行次数:0复制# 创建一个包含字符串和数字键值对的字典
my_dict = {'name': 'Alice', 'age': 18, 'gender': 'female'}
# 创建一个空字典
empty_dict = {}
访问字典元素
字典中的元素可以通过键来访问。
代码语言:python代码运行次数:0复制# 访问字典中的 'name' 键对应的值
print(my_dict['name']) # 输出 Alice
# 访问字典中的 'age' 键对应的值
print(my_dict['age']) # 输出 18
修改字典元素
字典中的元素是可变的,可以通过键来修改它们的值。
代码语言:python代码运行次数:0复制# 修改字典中的 'name' 键对应的值
my_dict['name'] = 'Bob'
# 输出修改后的字典
print(my_dict) # 输出 {'name': 'Bob', 'age': 18, 'gender': 'female'}
添加元素
字典中可以通过键来添加元素。
代码语言:python代码运行次数:0复制# 向字典中添加一个键值对
my_dict['phone'] = '123456789'
# 输出修改后的字典
print(my_dict) # 输出 {'name': 'Bob', 'age': 18, 'gender': 'female', 'phone': '123456789'}
删除元素
字典中可以通过 del 语句来删除元素。
代码语言:python代码运行次数:0复制# 删除字典中的 'gender' 键值对
del my_dict['gender']
# 输出修改后的字典
print(my_dict) # 输出 {'name': 'Bob', 'age': 18, 'phone': '123456789'}
遍历字典
字典中的元素可以通过循环来遍历。
代码语言:python代码运行次数:0复制# 遍历字典中的所有键
for key in my_dict:
print(key)
# 遍历字典中的所有值
for value in my_dict.values():
print(value)
# 遍历字典中的所有键值对
for key, value in my_dict.items():
print(key, value)
集合(Set)
集合是一种无序的、不重复的元素集合。集合用花括号 {} 包含,各个元素之间用逗号分隔。
创建集合
下面是一个创建集合的例子:
代码语言:python代码运行次数:0复制# 创建一个包含数字和字符串的集合
my_set = {1, 2, 3, 'hello', 'world'}
# 创建一个空集合
empty_set = set()
添加元素
集合中可以通过 add() 方法来添加元素。
代码语言:python代码运行次数:0复制# 向集合中添加一个元素
my_set.add('python')
# 输出修改后的集合
print(my_set) # 输出 {1, 2, 3, 'hello', 'world', 'python'}
删除元素
集合中可以通过 remove() 方法来删除元素。
代码语言:python代码运行次数:0复制# 删除集合中的 'hello' 元素
my_set.remove('hello')
# 输出修改后的集合
print(my_set) # 输出 {1, 2, 3, 'world', 'python'}
集合运算
集合支持并集、交集、差集等运算。
代码语言:python代码运行次数:0复制# 创建两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 计算两个集合的并集
print(set1 | set2) # 输出 {1, 2, 3, 4, 5, 6, 7, 8}
# 计算两个集合的交集
print(set1 & set2) # 输出 {4, 5}
# 计算两个集合的差集
print(set1 - set2) # 输出 {1, 2, 3}
# 计算两个集合的对称差集(即除了交集之外的元素)
print(set1 ^ set2) # 输出 {1, 2, 3, 6, 7, 8}
总结
Python 中的数据结构包括列表、元组、字典、集合等。它们各自有着不同的特点和使用方法,根据具体的需求选择合适的数据结构可以提高代码的效率和可读性。