在 Python 中,容器是用来存储多个对象的数据类型,比如列表、元组、字典等。Python 中的容器类型非常多,不同的容器类型适用于不同的场景,掌握这些容器类型对于 Python 程序员来说非常重要。在本文中,我们将介绍 Python 中的常见容器类型,以及它们的特点和使用方法。
- 列表(list)
列表是 Python 中最基本的容器类型之一,用于存储一系列有序的数据。列表中的元素可以是不同的数据类型,包括数字、字符串、列表、元组等。列表是可变的,也就是说,我们可以在列表中添加、删除、修改元素。下面是一个简单的示例:
# 创建一个列表
my_list = [1, 2, 3, "a", "b", "c"]
# 访问列表中的元素
print(my_list[0]) # 输出:1
print(my_list[-1]) # 输出:"c"
# 修改列表中的元素
my_list[0] = "A"
print(my_list) # 输出:["A", 2, 3, "a", "b", "c"]
# 添加元素
my_list.append("d")
print(my_list) # 输出:["A", 2, 3, "a", "b", "c", "d"]
# 删除元素
del my_list[0]
print(my_list) # 输出:[2, 3, "a", "b", "c", "d"]
- 元组(tuple)
元组也是一种有序的容器类型,与列表不同的是,元组是不可变的。也就是说,一旦创建了一个元组,就不能再修改其中的元素。元组通常用于存储不可变的数据,比如日期、坐标等。下面是一个示例:
# 创建一个元组
my_tuple = (1, 2, 3, "a", "b", "c")
# 访问元组中的元素
print(my_tuple[0]) # 输出:1
print(my_tuple[-1]) # 输出:"c"
# 元组不可变,无法修改元素
my_tuple[0] = "A" # 报错:TypeError: "tuple" object does not support item assignment
- 集合(set)
集合是一种无序的容器类型,用于存储唯一的元素。集合中的元素必须是可哈希的,也就是说,不能包含可变的数据类型,比如列表、字典等。集合支持交、并、差等常见的集合操作。下面是一个示例:
# 创建一个集合
my_set = {1, 2, 3, "a", "b", "c"}
# 访问集合中的元素
for item in my_set:
print(item)
# 添加元素
my_set.add("d")
print(my_set) # 输出:{1, 2, 3, "a", "b", "c", "d"}
# 删除元素
my_set.remove("a")
print(my_set) # 输出:{1, 2, 3, "b", "c", "d"}
# 求交集
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 & set2) # 输出:{3, 4}
# 求并集
print(set1 | set2) # 输出:{1, 2, 3, 4, 5, 6}
# 求差集
print(set1 - set2) # 输出:{1, 2}
- 字典(dict)
字典是一种无序的容器类型,用于存储键值对。字典中的键必须是唯一的,而值可以是任意的数据类型。字典是可变的,我们可以在字典中添加、删除、修改键值对。下面是一个示例:
# 创建一个字典
my_dict = {"name": "Tom", "age": 18, "gender": "male"}
# 访问字典中的元素
print(my_dict["name"]) # 输出:"Tom"
print(my_dict.get("age")) # 输出:18
# 修改字典中的元素
my_dict["name"] = "Jerry"
print(my_dict) # 输出:{"name": "Jerry", "age": 18, "gender": "male"}
# 添加键值对
my_dict["address"] = "Beijing"
print(my_dict) # 输出:{"name": "Jerry", "age": 18, "gender": "male", "address": "Beijing"}
# 删除键值对
del my_dict["gender"]
print(my_dict) # 输出:{"name": "Jerry", "age": 18, "address": "Beijing"}
除了以上介绍的容器类型外,Python 还有一些其他的容器类型,比如命名元组、双向队列等。掌握这些容器类型对于 Python 程序员来说非常重要,可以让我们更加高效地处理数据。