目录
Python 3 提供了多种内置的数据结构,这些数据结构有助于高效地存储和操作数据。以下是 Python 中常见的几种数据结构及其特点:
1. 列表(List)
列表是一种有序的、可变的数据结构,可以存储任意类型的数据。列表支持多种操作,如索引、切片、追加、删除等。
特点:
- 可变性:列表可以被修改。
- 有序性:列表中的元素有固定的顺序。
- 异质性:列表中的元素可以是不同的类型。
示例:
python
深色版本
1# 创建列表
2nums = [1, 2, 3, 4]
3
4# 访问元素
5print(nums[0]) # 输出 1
6
7# 修改元素
8nums[0] = 10
9print(nums) # 输出 [10, 2, 3, 4]
10
11# 添加元素
12nums.append(5)
13print(nums) # 输出 [10, 2, 3, 4, 5]
14
15# 删除元素
16del nums[0]
17print(nums) # 输出 [2, 3, 4, 5]
2. 元组(Tuple)
元组与列表类似,也是一种有序的数据结构,但它一旦创建就不可更改(不可变)。
特点:
- 不可变性:元组不能被修改。
- 有序性:元组中的元素有固定的顺序。
- 异质性:元组中的元素可以是不同的类型。
示例:
python
深色版本
1# 创建元组
2point = (1, 2, 3)
3
4# 访问元素
5print(point[0]) # 输出 1
6
7# 元组是不可变的,所以不能修改元素
8# point[0] = 10 # 会抛出 TypeError
9
10# 拼接元组
11new_point = point + (4,)
12print(new_point) # 输出 (1, 2, 3, 4)
3. 字典(Dictionary)
字典是一种无序的、可变的数据结构,用于存储键值对。键必须是不可变的类型,如字符串或数字。
特点:
- 可变性:字典可以被修改。
- 无序性:字典中的元素没有固定的顺序。
- 键值对:每个元素都是一个键值对。
示例:
python
深色版本
1# 创建字典
2person = {"name": "Alice", "age": 30}
3
4# 访问元素
5print(person["name"]) # 输出 Alice
6
7# 添加元素
8person["city"] = "New York"
9print(person) # 输出 {'name': 'Alice', 'age': 30, 'city': 'New York'}
10
11# 删除元素
12del person["age"]
13print(person) # 输出 {'name': 'Alice', 'city': 'New York'}
4. 集合(Set)
集合是一种无序的、不重复的数据结构,用于存储唯一的元素。
特点:
- 无序性:集合中的元素没有固定的顺序。
- 唯一性:集合中的元素不能重复。
- 可变性:集合可以被修改,但也有不可变版本(
frozenset)。
示例:
python
深色版本
1# 创建集合
2numbers = {1, 2, 3, 4}
3
4# 添加元素
5numbers.add(5)
6print(numbers) # 输出 {1, 2, 3, 4, 5}
7
8# 删除元素
9numbers.remove(4)
10print(numbers) # 输出 {1, 2, 3, 5}
11
12# 集合运算
13set1 = {1, 2, 3}
14set2 = {3, 4, 5}
15union = set1 | set2
16print(union) # 输出 {1, 2, 3, 4, 5}
5. 字符串(String)
尽管字符串不是严格意义上的数据结构,但在 Python 中经常被当作序列来处理。字符串是由字符组成的不可变序列。
特点:
- 不可变性:字符串一旦创建就不可更改。
- 有序性:字符串中的字符有固定的顺序。
- 字符序列:字符串可以被索引和切片。
示例:
python
深色版本
1# 创建字符串
2text = "Hello, world!"
3
4# 访问字符
5print(text[0]) # 输出 H
6
7# 字符串是不可变的,所以不能修改元素
8# text[0] = "h" # 会抛出 TypeError
9
10# 字符串拼接
11new_text = text + "!"
12print(new_text) # 输出 Hello, world! !
6. 字典推导式和列表推导式
Python 还支持推导式(Comprehensions),用于快速创建列表、字典等。
示例:
python
深色版本
1# 列表推导式
2numbers = [x for x in range(10) if x % 2 == 0]
3print(numbers) # 输出 [0, 2, 4, 6, 8]
4
5# 字典推导式
6squares = {x: x*x for x in range(5)}
7print(squares) # 输出 {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
总结
Python 提供了多种内置的数据结构来帮助你存储和处理数据。列表、元组、字典和集合各有特点,适用于不同的场景。列表和集合是可变的,而元组和字符串是不可变的。字典用于存储键值对,集合用于存储唯一的元素。理解这些数据结构的特性和使用方法,可以帮助你写出更加高效、清晰的代码。无论是在简单的数据存储还是复杂的算法实现中,熟悉这些数据结构都是非常重要的。

779

被折叠的 条评论
为什么被折叠?



