Python 中的 4 种内置数据结构:字典、列表、集合、元组
已发表: 2020-03-24在本文中,我们将重点关注Python 中的数据结构,并帮助您清楚地理解该主题。 你会发现它们是什么以及它们是如何运作的。 我们还分享了许多示例,以确保您对我们在这里分享的任何主题没有任何疑问。
所以,事不宜迟,让我们开始吧。
目录
什么是数据结构?
数据结构可让您有效且高效地组织和管理数据。 它们增强了数据的可访问性。 如果您有合适的数据结构,修改存储的数据也变得非常简单。 它们使您能够组织和存储数据,以便您以后可以对相同的数据执行操作,而不会遇到任何困难。
Python 有两种类型的数据结构。 Python 隐式支持的数据结构是 Set、Dictionary、List 和 Tuple。 这些是 Python 的内置数据结构。
然后,您可以自己创建一些数据结构,以便更好地控制功能。 这些是用户定义的数据结构,它们包括链表、图、树、堆栈、队列和哈希映射。 用户定义的数据结构也可用于其他编程语言。
阅读更多:R 中最常用的 6 种数据结构
Python 中的内置数据结构
Python 有多种内置数据结构。 这些集成的数据结构可帮助您快速轻松地解决编程问题。 正如我们前面提到的,Python 具有以下集成的数据结构:
- 字典
- 列表
- 套
- 元组
让我们详细讨论它们中的每一个:
1. 字典
我们使用字典来存储键值对。 就像物理字典存储一个单词及其含义一样,Python 中的字典存储键值对。 术语是键,而与这些词相关的各种含义是值。 使用该值,您可以访问密钥。
您可以创建带有花括号的字典。 您也可以为此目的使用 dict() 函数。 这是一个例子:
my_dict = {} #空字典
打印(我的字典)
my_dict = {1: 'A', 2: 'B'} #dictionary with elements
打印(我的字典)
上述代码的输出:
{}
{1:'A',2:'B'}
您可以通过键更改字典的值。 您必须首先访问键以更改值。 找到键后,您只需添加所需的键值对即可获得所需的结果。
my_dict = {'第一':'A','第二':'B'}
打印(我的字典)
my_dict['Second'] = 'C++' #改变元素
打印(我的字典)
my_dict['Third'] = 'Ruby' #添加键值对
打印(我的字典)
上述代码的输出:
{'第一':'A','第二':'B'}
{'第一':'A','第二':'C'}
{'第一':'A','第二':'C','第三':'D'}
您可以使用 pop() 函数删除字典中的值。 pop() 函数返回您已删除的值。 您可以通过 popitem() 函数检索键值对。 它返回该对的元组。 您也可以使用 clear() 函数清除整个字典。 这是示例:
my_dict = {'第一':'A','第二':'B'','第三':'C'}
a = my_dict.pop('Third') #pop 元素
打印('值:',一)
print('字典:', my_dict)
b = my_dict.popitem() #弹出键值对
print('键、值对:', b)
print('字典', my_dict)
my_dict.clear() #空字典
打印('n',my_dict)
上述代码的输出:
值:C
字典:{'First': 'A', 'Second': 'B'}
键、值对:('Second', 'B')
字典 {'First': 'A'}
{}
另请阅读: Python 项目理念和主题
2. 列表
我们使用列表顺序存储数据。 列表的每个元素都有一个地址,也称为索引。 列表的索引值从 0 到列表中的最后一个元素,其名称为正索引。 同样,当您从最后一个元素返回到第一个元素并从 -1 开始计数时,称为负索引。
您可以使用方括号创建列表,并根据需要向其中添加元素。 如果您将括号留空,则列表将没有任何元素,并且它也将是空的。 下面是一个列表示例:
my_list = [] #创建空列表
打印(我的列表)
my_list = [A, B, C, 'example', Z] #用数据创建列表
打印(我的列表)
上述代码的输出:
[]
[A, B, C, '例子', Z]
您可以使用 insert()、extent() 和 append() 函数将元素添加到列表中。 insert() 函数将那些传递给索引值的元素相加。 insert() 函数也会增加列表的大小。
使用 append() 函数,您可以将传递给它的所有元素添加为单个元素。 另一方面,extend() 函数可以一个一个地添加元素。
这是一个例子:
my_list = [A, B, C]
打印(我的列表)
my_list.append([555, 12]) #添加为单个元素
打印(我的列表)
my_list.extend([234, 'more_example']) #添加为不同的元素
打印(我的列表)
my_list.insert(1, 'insert_example') #添加元素 i
打印(我的列表)
上述代码的输出:
[A、B、C]
[A, B, C, [555, 12]]

[A, B, C, [555, 12], 234, 'more_example']
[A, 'insert_example', B, C, [555, 12], 234, 'more_example']
在使用列表时,您也会遇到需要删除一些元素的情况。 您可以使用“del”关键字。 它是 Python 的内置关键字,不会返回任何内容。 如果要返回一个元素,则必须使用 pop() 函数并通过其值删除元素,则必须使用 remove() 函数。 这是示例:
my_list = [A, B, C, '例子', Z, 10, 30]
del my_list[5] #删除索引5处的元素
打印(我的列表)
my_list.remove('example') #删除有值的元素
打印(我的列表)
a = my_list.pop(1) #从列表中弹出元素
print('弹出元素:',a,'剩余列表:',my_list)
my_list.clear() #清空列表
打印(我的列表)
上述代码的输出:
[A, B, C, '例子', Z, 30]
[A、B、C、Z、30]
弹出元素:2 剩余列表:[A、C、Z、30]
[]
您可以在 Python 中传递索引值并获取所需的值。
my_list = [A, B, C, '例子', Z, 10, 30]
for element in my_list: #access 元素一个一个
打印(元素)
print(my_list) #访问所有元素
print(my_list[3]) #访问索引3元素
print(my_list[0:2]) #访问从0到1的元素并排除2
print(my_list[::-1]) #反向访问元素
上述代码的输出:
一种
乙
C
例子
Z
10
30
[A, B, C, '例子', Z, 10, 30]
例子
[甲,乙]
[30, 10, Z, '例子', 3, 2, 1]
3. 套装
唯一且无序的项目的集合称为集合。 因此,如果由于某种原因重复数据,它只会在集合中出现一次。 Python 中的集合类似于您在数学中读到的集合。 从它们的性质到它们的功能,你会发现它们之间有很多相似之处。
您可以通过使用花括号并传递其值来创建一个集合。 这是一个例子:
my_set = {A, B, C, D, E, E, E} #创建集合
打印(my_set)
上述代码的输出:
{A、B、C、D、E}
就像我们之前提到的,您可以在 Python 的集合中执行您在算术中执行的集合的所有功能。 使用 union() 函数,您可以组合存在于两组中的数据。 intersection() 函数为您提供了上述两个集合中存在的数据。
您有一个 difference() 函数,可让您删除两个集合中的可用数据,并为您提供它们之间不常见的数据。 symmetric_difference() 函数为您提供这些集合中剩余的数据。
my_set = {A, B, C, D}
my_set_2 = {C, D, E, F}
打印(my_set.union(my_set_2),'———-',my_set | my_set_2)
print(my_set.intersection(my_set_2), '———-', my_set & my_set_2)
print(my_set.difference(my_set_2), '———-', my_set – my_set_2)
print(my_set.symmetric_difference(my_set_2), '———-', my_set ^ my_set_2)
my_set.clear()
打印(my_set)
上述代码的输出:
{A, B, C, D, E, F} ———- {A, B, C, D, E, F}
{C, D} ———- {C, D}
{A, B} ———- {A, B}
{A, B, E, F} ———- {A, B, E, F}
放()
另请阅读:印度的 Python 开发人员薪水
4. 元组
元组类似于列表,但是一旦在元组中输入数据,除非它是可变的,否则无法更改它。 理解它们可能有点棘手,但不用担心,我们的示例代码可能会在这方面对您有所帮助。 您可以在 tuple() 函数的帮助下创建一个元组。
my_tuple = (A, B, C) #创建元组
打印(我的元组)
上述代码的输出:
(甲、乙、丙)
访问元组中的值的方法与列表中的相同。
my_tuple2 = (A, B, C, 'Upgrad') #访问元素
对于 my_tuple2 中的 x:
打印(x)
打印(my_tuple2)
打印(my_tuple2[0])
打印(my_tuple2[:])
上述代码的输出:
一种
乙
C
升级
(A、B、C、“升级”)
一种
(A、B、C、“升级”)
结论
现在您一定已经熟悉了Python 中的各种数据结构。 我们希望您发现这篇文章很有用。 数据结构在帮助您组织、管理和访问数据方面发挥着重要作用。 有很多选项可供选择,每个选项都有其特定的用途。
如果你想了解更多关于 Python 和数据结构的信息,你应该看看我们的课程。
如果您想了解 Python 以及有关数据科学的所有知识,请查看 IIIT-B 和 upGrad 的数据科学 PG 文凭,该文凭专为在职专业人士而设,提供 10 多个案例研究和项目、实用的实践研讨会、行业指导专家,与行业导师一对一,400 多个小时的学习和顶级公司的工作协助。
什么时候使用字典数据类型?
字典可以定义为在 Python 中使用的有价值的数据类型,作为存储在键和值对中的数据集合。 现在,字典的值可以是任何数据类型,但键必须是不可变的数据类型,如元组、整数或字符串。
当您希望在不遍历整个数据集合的情况下立即找到一个值时,发现字典非常方便。 除此之外,当数据的顺序不重要时,字典也非常有用。 当内存考虑不是一个重要因素时,首选字典数据类型,因为与列表和元组相比,它们往往占用更多空间。
列表和元组有什么区别?
列表和元组都是序列数据类型,可用于在 Python 中存储数据集合。 它们之间最显着的区别是列表是可变的,而元组是不可变的。 最重要的是,与列表相比,元组中迭代的含义要快得多。
如果您希望执行插入和删除操作,那么列表对您来说很容易。 同时,可以在元组中更好地访问元素。 决定使用任何数据结构的另一个重要因素是内存。 在这里,与元组相比,列表往往会消耗更多的内存。
集合与列表有何不同?
列表被认为是 Python 中最强大的工具,因为它们并不总是必须是同质的。 列表和集合都可以包含各种数据类型。 现在,列表可以包含重复元素,但集合永远不能包含重复元素,它们会从集合中消失。
元素的顺序在列表中保持不变,但集合永远不能保持元素的顺序。 由于列表占用了大量计算空间,它们最终会花费大量时间。 另一方面,集合利用散列来执行查找,最终比列表快得多。