Python数据结构详解:列表、元组、集合和字典的区别
概述
Python 中的数据结构为我们提供了一种存储和排列易于访问和修改的数据的方法。这些数据结构包括集合。一些最常用的内置集合是列表、集合、元组和字典。
介绍
很难理解Python 中的列表、元组、集合和字典是什么?每个至少使用过一次 Python 的人都对它们之间的差异或何时使用它们感到困惑。好了,不多说了,我们将分解这些数据结构集合的差异并理解它们,以便我们永远不会忘记它们!
让我们仔细看看每个集合是什么:
Python 中列表、元组、集合和字典之间的主要区别
可变性:
命令:
独特性:
数据结构:
Python中列表、元组、集合、字典的区别
参数 | 列表 | 元组 | 集合 | 字典 |
---|---|---|---|---|
Definition | 列表是有序的、可变的元素集合。 | 元组是有序的、不可变的元素集合。 | 集合是唯一元素的无序集合。 | 字典是键值对的无序集合。 |
Syntax | 语法包括用“,”分隔数据的方括号 [,]。 | 语法包括用“,”分隔数据的弯括号 ( , )。 | 语法包括大括号 { , } 以及用 ',' 分隔的数据。 | 语法包括大括号 { , } 和用 ',' 分隔的键值数据。 |
Creation | 可以使用 list() 函数或对 [] 进行简单赋值来创建列表。 | 可以使用 tuple() 函数创建元组。 | 可以使用 set() 函数创建集合字典。 | 可以使用 dict() 函数创建字典。 |
Empty Data Structure | 可以通过l = []创建一个空列表。 | 可以通过t = ()创建一个空元组。 | 可以通过s = set()创建一个空集。 | 可以通过{}创建一个空字典。 |
Order | 它是一个有序的数据集合。 | 它也是一个有序的数据集合。 | 它是无序的数据集合。 | Python 版本 3.7 中的有序集合,Python Version=3.6 中的无序集合。 |
Duplicate Data | 列表中允许重复的数据输入。 | 元组中允许重复的数据输入。 | Set 中的所有元素都是唯一的。 | 键是唯一的,但两个不同的键可以具有相同的值。 |
Indexing | 具有从“0”开始的基于整数的索引。 | 还具有从“0”开始的基于整数的索引。 | 没有基于索引的机制。 | 具有基于键的索引,即键标识值。 |
Addition | 可以使用append()方法添加新项目。 | 由于是不可变的,因此无法向其中添加新数据。 | add() 方法将一个元素添加到集合中。 | update() 方法更新特定的键值对。 |
Deletion | Pop() 方法允许删除元素。 | 由于不可变,因此无法弹出/删除任何数据。 | 可以使用 pop() 随机删除元素。 | pop(key) 删除指定的键及其值。 |
Sorting | sort() 方法对元素进行排序。 | 不可变,因此排序方法不适用。 | 无序,因此不建议排序。 | 使用sorted()方法对键进行排序。 |
Search | index() 返回第一次出现的索引。 | index() 返回第一次出现的索引。 | 无序,因此不适用搜索。 | get(key) 根据指定的键返回值。 |
Reversing | reverse() 方法反转列表。 | 不可变,因此反向方法不适用。 | 无序,因此不建议反向。 | 没有基于整数的索引,因此没有反转。 |
Count | count() 方法返回出现次数。 | count() 方法返回出现次数。 | count() 没有为集合定义。 | count() 没有为字典定义。 |
让我们在以下主题中了解有关列表、元组、集合和字典的更多信息:
列表
列表是Python提供的最常用的数据结构之一;它们是可迭代、可变和有序数据的集合。它们可能包含重复的数据。
当然!以下是针对每个数据结构提取和组织的代码片段,并使用适当的副标题:
句法
代码:
list1 = [1 , 2, 'abc', 3, 'def']
list2 = []
list3 = list((1, 2, 3))
print(list1)
print(list2)
print(list3)
输出:
[1, 2, 'abc', 3, 'def']
[]
[1, 2, 3]
索引
代码:
list1 = [1, 2, "hello", 3]
print(list1[2])
输出:
'hello'
添加新元素
代码:
list1 = ["one", "two", "three"]
list1.append("four")
print(list1)
输出:
['one', 'two', 'three', 'four']
删除元素
代码:
list1 = ["one", "two", "three", "four"]
list1.pop()
print(list1)
输出:
['one', 'two', 'three']
对元素进行排序
代码:
list1 = [100, 3, 4, 12, 1]
list1.sort()
print(list1)
输出:
[1, 3, 4, 12, 100]
搜索元素
代码:
list1 = [100, 3, 4, 12, 1]
# index() returns index for 4 in list1
print(list1.index(4))
输出:
2
反转元件
代码:
list1 = [100, 3, 4, 12, 1]
list1.reverse()
print(list1)
输出:
[1, 12, 4, 3, 100]
计数元素
代码:
list1 = [1, 2, 3, 6, 2, 2, 2]
print(list1.count(2))
输出:
4
元组
元组与列表类似。这个集合也有可迭代的、有序的和(可以包含)重复的数据,就像列表一样。但与列表不同的是,元组是不可变的。
句法
代码:
tuple1 = (1, 2, 'abc', 3, 4)
tuple2 = ()
tuple3 = tuple((1, 3, 5, "hello"))
print(tuple1)
print(tuple2)
print(tuple3)
输出:
(1, 2, 'abc', 3, 4)
()
(1, 2, 3, 'hello')
索引
代码:
tuple1 = (1, 2, "hello", 3)
print(tuple1[2])
输出:
'hello'
放
集合是另一种数据结构,它保存无序、可迭代和可变数据的集合。但它只包含独特的元素。
当然!以下是表的“设置”部分的代码片段,包括语法和搜索元素部分:
句法
代码:
set1 = {1, 2, 3, 'abc', 6}
print(set1)
输出:
{'abc', 1, 2, 3, 6}
字典
与所有其他集合类型不同,字典严格包含键值对。
句法
代码:
dict1 = {"key1": "value1", "key2": "value2"}
dict2 = {}
dict3 = dict({1: "one", 2: "two", 3: "three"})
print(dict1)
print(dict2)
print(dict3)
输出:
{'key2': 'value2', 'key1': 'value1'}
{}
{1: 'one', 2: 'two', 3: 'three'}
索引
代码:
dict1 = {"one": 1, "two": 2, "three": 3}
print(dict1.keys())
print(dict1.values())
print(dict1['two'])
输出:
['three', 'two', 'one']
[3, 2, 1]
2
添加新元素
代码:
dict1 = {"India": "IN", "Russia": "RU", "Australia": "AU"}
dict1.update({"Canada": "CA"})
print(dict1)
dict1.pop("Australia")
print(dict1)
输出:
{'Canada': 'CA', 'Australia': 'AU', 'India': 'IN', 'Russia': 'RU'}
{'Canada': 'CA', 'India': 'IN', 'Russia': 'RU'}
删除元素
代码:
dict1 = {"India": "IN", "Russia": "RU", "Australia": "AU"}
dict1.pop('Russia')
print(dict1)
输出:
{'Australia': 'AU', 'India': 'IN'}
对元素进行排序
代码:
dict1 = {"India": "IN", "Russia": "RU", "Australia": "AU"}
print(sorted(dict1))
输出:
['Australia', 'India', 'Russia']
搜索元素
代码:
dict1 = {"India": "IN", "Russia": "RU", "Australia": "AU"}
print(dict1['Australia'])
输出:
AU
如果您想知道orderedDict和dict在 python 3.7 中是否都是有序的。那为什么会有两种实现呢?有什么区别吗?
我们可以把它留到我们详细讨论字典的时候。但在那之前,我们应该知道字典是什么,以及它们的用途,因为这是永远不会改变的东西。
集合 VS 特征 | 可变的 | 有序的 | 索引 | 重复数据 |
---|---|---|---|---|
列表 | ✔ | ✔ | ✔ | ✔ |
元组 | 𐄂 | ✔ | ✔ | ✔ |
放 | ✔ | 𐄂 | 𐄂 | 𐄂 |
字典 | ✔ | ✔ | ✔ | 𐄂 |
注意:有序集合是指数据结构保留添加数据的顺序,而无序集合中的数据结构不保留这种顺序。
让我们更深入地研究这些集合之间的差异:
字典、列表、集合和元组之间的主要区别
句法
命令
重复数据
索引
添加元素
删除元素
对元素进行排序
搜索元素
反转元件
计数元素
结论
希望这些信息能够更清楚地说明 python 中列表、元组、集合和字典之间的区别。它们服务于哪些用例,并希望它能让您清楚何时使用哪个集合。
作者:新华