Python 中的数据结构类型:列表、元组、集合和字典
已发表: 2020-12-30Python 一直是所有数据科学爱好者最喜欢的语言。 通用性和易于理解的方法可帮助开发人员更多地专注于了解数据趋势并获得有意义的见解,而不是花时间修复一个小的分号错误或关闭开销括号。 Python 作为初学者中最流行的语言,很快就适应了,因此掌握这门语言变得很重要。
数据结构是任何编程语言中的一个基本概念。 它根据数据类型定义了如何以最佳方式从内存中存储和检索变量和数据。 它还定义了变量之间的关系,这有助于确定应该对它们执行的操作和功能。 让我们了解 Python 是如何管理数据的。
目录
Python中的数据结构类型
1. 列表
这是 Python 编程中最简单、最常用的数据结构。 顾名思义,它是要存储的项目的集合。 存储的项目可以是任何类型的数字、字符串、布尔值、对象等,这使得它是异构的。 这意味着一个列表可以包含任何类型的数据,我们可以使用任何类型的循环来迭代这个列表。
存储的元素通常与定义列表中位置的索引相关联。 索引编号从零开始。 列表是可变的,这意味着列表中的元素即使在定义之后也可以添加、删除或更改。 这种数据结构就像其他语言中的数组一样,通常是同构的,这意味着数组中只能存储一种类型的数据。 Lists的一些基本操作如下:
- 要在 Python 中声明一个列表,请将其放在方括号中:
sample_list = ['upGrad', '1', 2]
- 初始化一个空列表:
样本列表 = 列表()
- 将元素添加到列表中:
sample_list.append('new_element')
- 从列表中删除元素:
sample_list.remove(<element name>) 删除特定元素
del sample_list[<element index num>] 删除该索引处的元素
sample_list.pop(<element index num>) 删除该索引的元素并返回该删除的元素
- 要更改任何索引处的元素:
sample_list[<任何索引>] = 新项目
- 切片:这是一个重要功能,可以在特定情况下过滤掉列表中的项目。 考虑到您只需要列表中特定范围的值,那么您可以通过以下方式简单地执行此操作:
sample_list[start: stop: step] 其中 step 定义元素之间的间隙,默认为 1。
了解:如何创建完美的决策树
2. 元组
这是另一种顺序存储数据的数据结构,这意味着添加的数据会像列表一样保持有序。 按照同样的思路,Tuple 也可以存储异构数据,并且索引保持不变。
两者的主要区别在于元组中存储的元素是不可变的,定义后无法更改。 这意味着您不能添加新元素、更改现有项目或从元组中删除元素。 元素只能通过索引或解包从中读取,无需替换。
这使得元组在创建方面比列表快。 元组存储在单个内存块中,但列表需要两个块,一个是固定大小的,另一个是可变大小的用于存储数据。 当用户确定要存储的元素不需要任何进一步修改时,应该更喜欢元组而不是列表。 使用元组时需要考虑的一些事项:
- 初始化一个空元组:
样本元组 = 元组()
- 要声明一个元组,请将项目括在圆括号中:
sample_tuple = ('upGrad', 'Python', 'ML', 23432)
- 要访问元组的元素:
样本元组[<index_num>]

3. 套装
在数学中,集合是定义明确的独特元素的集合,这些元素可能彼此相关,也可能不相关。 在 tuple 和 list 中,可以存储许多重复的元素而不会失败,但是 set 数据结构只接受唯一的项目。
集合的元素以无序的方式存储,这意味着项目随机存储在集合中,并且不支持明确的位置或索引,集合中也不允许切片。 集合本身是可变的,但元素必须是不可变的,因为集合的工作方式是散列这些元素,在这个过程中,只有不可变的元素可以散列。
可以从集合中添加或删除元素,但不能更改,因为没有索引的概念,因此可以更改元素。 就像在数学中一样,这里也可以执行所有集合操作,例如并集、交集、差分、不相交。 让我们看看如何实现它:
- 初始化一个空集:
样本集 = 集()
- 向集合中添加元素:
sample_set.add(item) 这将单个项目添加到集合中
sample_set.update(items) 这可以通过列表、元组或其他集合添加多个项目
- 从集合中移除元素:
sample_set.discard(item) 如果元素不存在,则删除元素而不发出警告
sample_set.remove(item) 如果要删除的元素不存在,则引发错误。
- 集合操作(假设初始化了两个集合:A 和 B):
一个 | B 或 A.union(B):联合操作
A & B 或 A.intersection(B):相交操作
A – B 或 A.difference(B):两组的差异
A ^ B 或 A.symmetric_difference(B) :集合的对称差
查看: Python 中的数据框
4.字典
这是 Python 中最有用的数据结构,它允许数据元素以键值对的方式存储。 键必须是不可变值,值可以是可变项。 这个概念就像实际字典的样子,我们将单词作为键,将它们的含义作为值。 字典以无序的方式存储这些对,因此在这个数据结构中没有索引的概念。 与此相关的一些重要事项:
- 初始化一个空字典:
sample_dict = dict()
- 向字典中添加元素:
sample_dict[key] = 值
另一种方法是 sample_dict = {key: value}
如果你打印这个字典,输出将是: {'key1': value, 'key2': value ... }
- 获取字典的键和值:
sample_dict.keys():返回键列表
sample_dict.values():返回值列表
sample_dict.items():返回键值对的视图对象作为列表中的元组
学习世界顶尖大学的数据科学课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。
结论
掌握Python中数据结构的基础知识很重要。 在数据行业,不同的数据结构可以帮助更好地解决底层算法。 它使开发人员更加了解最佳编码实践以有效地获得结果。 每个数据结构的使用都高度基于情境,需要严格的实践。
数据结构的重要性是什么?
数据结构是任何编程语言的基础支柱之一。 它们定义了数据将如何在内存中存储和操作。 无论我们谈论哪种编程语言,数据结构的概念都是一样的。
最常见的数据结构包括数组、列表、堆栈、队列、树、哈希图和图。 其中一些是内置的,而另一些则需要用户借助预定义的数据结构来实现。
我怎样才能对数据结构有很强的把握?
任何数据结构的实现和工作的基本概念应该是您应该采取的第一步。 在熟悉了理论概念和工作之后,您可以从编码部分开始。
您应该始终研究您正在处理的任何算法或数据结构的时间复杂度和空间复杂度。 这将使您对概念有一个正确的了解,并且您将能够解决任何需要该特定数据结构的问题。
什么时候首选 Python 列表来存储数据?
列表可用于存储具有不同数据类型的各种值,并且可以仅通过它们各自的索引来访问。 当您需要对元素执行数学运算时,可以使用列表,因为它允许您直接对元素进行数学运算。
由于列表可以调整大小,因此当您不确定要存储的元素数量时,可以使用它来存储数据。