Python数据结构

2025年6月19日 | 阅读 6 分钟

在 Python 中,数据结构是用于组织、处理、检索和存储数据的构建块,以便更有效地访问数据。Python 是一种高级的、面向对象的语言,它允许用户更简单地学习数据结构及其算法的基础知识。

Python 中的数据结构

Python 提供了各种数据结构,例如:

  • 列表
  • 元组
  • Set
  • 字典

让我们通过示例讨论这些数据结构

列表

Python 列表 用于在单个变量中存储不同数据类型的多个项。它的工作方式与数组相同,只有一个区别:在列表中,并非所有项都必须是相同的数据类型。

列表是可变的(可以修改、删除或替换),并且可以包含重复项。列表的工作方式与 C 语言 中的 数组C++ 中的 向量Java 中的 ArrayList 相同。

让我们看一个简单的示例,演示如何创建列表

示例

立即执行

输出

List 1: ['Tpoint', 12, False, 1.6, 3000000000000.0]
List 2: [['Tpoint', 'Tech'], 3, True, 'Hello', 1.69]

说明

在上面的示例中,我们使用方括号 '[]' 创建了一个简单的列表。此列表包含不同数据类型的元素。同样,我们创建了一个嵌套列表(列表中的列表)。

元组

Python 元组 被定义为对象的集合。它的工作方式与列表类似,唯一的区别是元组是不可变的(这意味着一旦你在 Python 中创建了一个元组,我们就不能添加、删除或修改其中的任何元素)。与列表一样,元组也可以包含各种类型的元素。

在 Python 中,可以通过用“逗号”分隔的值序列,使用或不使用括号来创建元组,以对数据序列进行分组。

这是一个创建元组的简单示例。

示例

立即执行

输出

Tuple 1: ('Tpoint', 19, True, 1.6, 5000.0)
Tuple 2: (('Hello', 'World'), 13, False, 'Tpoint', 6.9)

说明

在上面的示例中,我们使用圆括号 '()' 创建了一个简单的元组。此元组包含不同数据类型的元素。同样,我们创建了一个嵌套元组(元组中的元组)。

Set

Python 集合 是一个无序数据的集合,用于在单个变量中存储多个元素。集合也是可变的,这意味着一旦你在 Python 中创建了集合,你就不能更改或修改其元素。

在 Python 集合中,不允许重复;因此,你不能有两个具有相同值的项,这有助于消除重复条目。它通常用于包含成员资格测试。集合使用流行的哈希技术,该技术允许在平均 O(1) 时间内执行插入、删除和遍历等操作。

让我们看一个简单的示例,演示如何创建集合。

示例

立即执行

输出

Set 1: {False, 19.2, 'tpoint', 21, 'hello', 40}
Set 2: {True, ('tpoint', 'tech'), 'welcome', 10, 13.6}

说明

在上面的示例中,我们通过将一些项包含在花括号 '{}' 中创建了一个集合。在这里,我们可以观察到重复的元素已从集合中消除。此外,我们可以观察到集合中的元素是无序的。我们创建了另一个包含元组(不可变序列)的集合。

字典

Python 字典 用于存储键值对的数据值。它与列表不同,因为它是有序的且可变的,并且不包含任何重复元素。提供的值可以是任何数据类型,甚至可以包含重复数据;但是,键是不可变的,不应包含重复值。

在字典中,索引是通过键进行的。它们内部使用哈希的概念,并且可以是任何可哈希的类型(这意味着一个永远不会改变的对象,如字符串、数字、元组等)。

让我们看一个创建字典的简单示例。

示例

立即执行

输出

Dictionary 1: {'name': 'Johnson', 'age': 24, 'profession': 'Software Developer', 'company': 'Tpoint Tech'}
Dictionary 2: {'name': 'Sachin', 'dob': {'date': 11, 'month': 'March', 'year': 1999}, 'profession': 'Web Developer', 'company': 'Tpoint Tech'}

说明

在上面的示例中,我们通过将一些“键:值”对包含在花括号 '{}' 中创建了一个字典。在这里,我们可以看到键 'age' 重复了,因此第一个键的值被第二个键的值覆盖,因为字典只包含唯一的键。我们还创建了一个嵌套字典(另一个字典的值为字典)。

String

Python 字符串 是表示 Unicode 字符的字节数组。例如,“tpointtech”是一个包含字符序列的字符串 - 't'、'p'、'o'、'i'、'n'、't'、't'、'e'、'c'、'h'。

让我们通过一个示例来理解这一点。

示例

立即执行

输出

My String: Tpoint Tech

Given String: Welcome to Tpoint Tech
Length of String: 22
First Element of String: W
Last Element of String: h
Fourth Element of String: c

说明

在这里,我们通过将文本包含在双引号 ("...") 中创建了一个字符串。我们还对字符串执行了一些操作,例如查找其长度以及打印字符串的不同元素。

Collections 模块

Python Collection Module acts as a container that provides various in-built datatypes. Let's understand them one by one. (Python Collection 模块充当一种容器,提供各种内置数据类型。让我们逐一了解它们。)

序号。数据结构描述
1计数器Python counter 是字典的一个子类。它用于以无序字典的形式计算可迭代对象中的元素,其中键表示可迭代对象中的元素,值表示该元素在可迭代对象中的计数。
2OrderedDictPython OrderedDict 类似于字典,唯一的区别是它维护字典中键的插入顺序。
3DequePython Deque 代表双端队列。它是一种类似列表的容器,用于快速地从容器的两端进行追加和弹出操作。它支持 FIFO(先进先出)和 LIFO(后进先出)操作。
4ChainMapPython ChainMap 将不同的字典封装在一个变量中。它通过逐个搜索所有字典来查找键,直到找到所需的键值。
5UserDictPython UserDict 包装了所有字典对象。当 Python 开发者想要创建具有修改或新功能的字典时,它充当一个容器。

结论

在本教程中,我们探讨了 Python 中用于数据管理和操作的数据结构的基本原理。从 **列表**、**元组**、**字典**、**集合** 和 **字符串** 等内置结构到更专业的结构,如 **Collections 模块**,每种结构都有其独特的编程用途。

理解这些数据结构非常有益,因为它们可以提高代码的性能和清晰度。应用数据结构还可以增强你在 Python 中的问题解决能力。

Python 数据结构常见问题解答

1. Python 中的基本数据结构是什么?

以下是 Python 中的内置数据结构:

  • 列表
  • 元组
  • Set
  • 字典

2. 列表和元组之间有什么区别?

  • 列表是可变(可更改)数据结构,而元组是不可变的(不可更改)。
  • 列表占用的内存更多,并且比元组稍慢。

3. 何时应在 Python 中使用集合?

我们可以使用集合,当:

  • 我们需要唯一的项。
  • 我们想要快速的成员资格测试。
  • 我们不需要顺序。

4. 字典可以有重复的键吗?

不可以。字典中的键必须是唯一的。如果我们使用重复的键,最后分配的值会覆盖先前的分配。

5. 哪种数据结构最适合快速查找?

集合和字典 - 两者都提供平均 O(1) 的查找时间复杂度。


下一个主题Python 函数