Python入门:7.Pythond的内置容器
引言
Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器:字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。
一、容器的概念
容器是用来存储多个数据的对象。在 Python 中,容器根据数据是否有序、是否可变、是否重复等特性被划分为多种类型。主要包括以下几类:
- 字符串(str):存储字符编码值,不可变,序列。
- 列表(list):存储变量,可变,序列。
- 元组(tuple):存储变量,不可变,序列。
- 字典(dict):存储键值对,可变,散列,键不能重复且不可变。
- 集合(set):存储键,可变,无序且不重复。
二、内置容器的详细解析
1. 字符串(String,str)
字符串是一种不可变的有序字符序列。
常用方法表格:
方法名 | 描述 |
---|---|
len(s) | 返回字符串的长度 |
s.lower() | 转换为小写 |
s.upper() | 转换为大写 |
s.strip() | 去除两端的空格或指定字符 |
s.split() | 根据指定分隔符拆分字符串 |
s.join(t) | 用字符串连接可迭代对象的元素 |
s.replace(a, b) | 替换字符串中的子串 a 为 b |
示例代码:
text = " Hello, Python! "# 基本操作
print(len(text)) # 输出: 15
print(text.strip()) # 输出: Hello, Python!
print(text.lower()) # 输出: hello, python!# 分割与连接
words = text.strip().split(", ")
print(words) # 输出: ['Hello', 'Python!']
joined = "-".join(words)
print(joined) # 输出: Hello-Python!
2. 列表(List)
列表是一种有序、可变的容器,可以存储任意类型的对象。
常用方法表格:
方法名 | 描述 |
---|---|
len(lst) | 返回列表的长度 |
lst.append(x) | 在列表末尾添加元素 x |
lst.insert(i, x) | 在索引 i 处插入元素 x |
lst.pop([i]) | 删除并返回索引 i 处的元素(默认为末尾) |
lst.remove(x) | 删除第一个值为 x 的元素 |
lst.sort() | 对列表进行排序(默认升序) |
lst.reverse() | 将列表反转 |
示例代码:
fruits = ['apple', 'banana', 'cherry']# 添加和删除元素
fruits.append('orange')
print(fruits) # 输出: ['apple', 'banana', 'cherry', 'orange']
fruits.remove('banana')
print(fruits) # 输出: ['apple', 'cherry', 'orange']# 索引与排序
fruits.insert(1, 'grape')
print(fruits) # 输出: ['apple', 'grape', 'cherry', 'orange']
fruits.sort()
print(fruits) # 输出: ['apple', 'cherry', 'grape', 'orange']
3. 元组(Tuple)
元组是一种有序、不可变的容器。
常用方法表格:
方法名 | 描述 |
---|---|
len(tpl) | 返回元组的长度 |
tpl.index(x) | 返回元素 x 的第一个索引 |
tpl.count(x) | 返回元素 x 出现的次数 |
示例代码:
coordinates = (10, 20, 30, 20)# 元组操作
print(len(coordinates)) # 输出: 4
print(coordinates.index(20)) # 输出: 1
print(coordinates.count(20)) # 输出: 2
4. 字典(Dictionary,dict)
字典是一种无序的键值对(key-value pair)容器。
常用方法表格:
方法名 | 描述 |
---|---|
len(d) | 返回字典中键值对的数量 |
d[k] | 返回键 k 对应的值 |
d.clear() | 清空字典中的所有键值对 |
d.get(k[, default]) | 返回键 k 对应的值,如果不存在返回默认值 |
d.keys() | 返回字典的所有键 |
d.values() | 返回字典的所有值 |
d.items() | 返回字典的所有键值对 |
d.pop(k) | 删除并返回键 k 对应的值 |
示例代码:
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}# 基本操作
print(len(person)) # 输出: 3
print(person.get('name')) # 输出: Alice# 修改和删除
person['age'] = 30
person.pop('city')
print(person) # 输出: {'name': 'Alice', 'age': 30}# 遍历
for key, value in person.items():print(f"{key}: {value}")
5. 集合(Set)
集合是一种无序、不重复元素的容器。
常用方法表格:
方法名 | 描述 |
---|---|
len(s) | 返回集合的大小 |
s.add(x) | 向集合添加元素 x |
s.remove(x) | 从集合中删除元素 x |
s.union(t) | 返回两个集合的并集 |
s.intersection(t) | 返回两个集合的交集 |
s.difference(t) | 返回两个集合的差集 |
示例代码:
A = {1, 2, 3}
B = {3, 4, 5}# 集合操作
print(A.union(B)) # 输出: {1, 2, 3, 4, 5}
print(A.intersection(B)) # 输出: {3}
print(A.difference(B)) # 输出: {1, 2}# 添加和删除元素
A.add(6)
A.remove(2)
print(A) # 输出: {1, 3, 6}
三、容器间的相互转换
Python 的容器可以相互转换,这使得它们在不同场景下非常灵活。
# 列表转集合
unique_items = set([1, 2, 2, 3])# 集合转列表
items = list(unique_items)# 列表转字典
pairs = [('a', 1), ('b', 2)]
d = dict(pairs)
四、总结
选择合适的容器是编程的关键:
- 需要有序数据并允许重复?使用列表。
- 数据不变且需要有序?使用元组。
- 需要快速查找数据?使用字典或集合。
- 需要唯一值集合且无序?使用集合。
容器类型 | 特点 | 是否可变 | 是否有序 | 是否允许重复 |
---|---|---|---|---|
字符串(str) | 存储字符编码值 | 不可变 | 有序 | 允许 |
列表(list) | 存储变量 | 可变 | 有序 | 允许 |
元组(tuple) | 存储变量 | 不可变 | 有序 | 允许 |
字典(dict) | 存储键值对 | 可变 | 无序 | 不适用(键唯一) |
集合(set) | 存储键 | 可变 | 无序 | 不允许 |
通过掌握这些内置容器的特点和用法,可以更高效地组织和操作数据,从而编写简洁优雅的 Python 代码。希望本文能帮助你更好地理解和应用这些容器!