Python 中列表、元组、集合和字典之间的区别

B站影视 2025-01-29 11:40 1

摘要:列表:可变(可修改)。元组:不可变(不可修改)。设置:可变,但元素必须不可变。字典:可变;键是不可变的,但值可以更改。

列表:可变(可修改)。元组:不可变(不可修改)。设置:可变,但元素必须不可变。字典:可变;键是不可变的,但值可以更改。列表:保持元素的顺序。元组:保持元素的顺序。设置:不保持元素的顺序。字典:从 Python 3.7+ 开始,插入顺序保持不变。列表:允许重复项。元组:允许重复。设置:仅包含唯一元素。字典:唯一键,值可以重复。

定义:列表是可以具有不同类型的项的有序集合。它们是可变的,这意味着在创建列表后可以更改它们的元素。

语法: 用方括号 创建。

特征:

基于索引:您可以按元素在列表中的位置访问元素。允许重复元素。可以添加、删除或更改元素。

用例:当您需要可能需要修改的有序项目集合时,或者当您想要存储一系列项目时。

语法和示例:

list1 = [3 , 4, 'ABC', 3, 'list']list2 = list3 = list((4, 2, 8))print(list1)print(list2)print(list3)#OUTPUT:[3, 4, 'ABC', 3, 'list'][4, 2, 8]

索引

list1 = [1, 2, "mrcoder", 3]print(list1[2])#OUTPUTmrcoder

添加新元素

list1 = ["1", "2", "3"]list1.append("4")print(list1)#OUTPUT['1', '2', '3', '4']

删除元素

list1 = ["1", "2", "3", "4"]list1.popprint(list1)#OUTPUT['1', '2', '3']

排序元素

list1 = [6, 34, 24, 1, 234]list1.sortprint(list1)#output[1, 6, 24, 34, 234]list1 = [34, 323, 74, 132, 11]# index returns index for 4 in list1print(list1.index(11))#OUTPUT4

换向元件

list1 = [34, 323, 74, 132, 11]list1.reverseprint(list1)#OUTPUT[11, 132, 74, 323, 34]

计数元素

list1 = [1, 6, 3, 6, 8, 1, 5]print(list1.count(6))#OUTPUT2

定义:元组类似于列表,但不可变,这意味着一旦创建了元组,就无法更改其元素。

语法: 用括号 创建。

特征:

基于索引。允许重复元素。创建后无法修改(不可变)。

用例:当需要一个有序的项目集合时,这些项目不应在程序过程中更改。非常适合存储固定数据。

语法和示例:

tuple1 = (1, 2, 'abc', 3, 'def')tuple2 = tuple3 = tuple((1, 2, 3))print(tuple1)print(tuple2)print(tuple3)#OUTPUT(1, 2, 'abc', 3, 'def')(1, 2, 3)

索引

tuple1 = (6, 2, "mrcoder", 7)print(tuple1[2])#OUTPUTmrcoder

定义:集合是唯一元素的无序集合。它们是可变的,不允许重复元素。

语法:使用大括号 {} 或空集 set 的函数创建。

特征:

无序,因此无法通过索引访问元素。自动删除重复元素。可以添加或删除元素。

用例:当您需要确保所有元素都是唯一的,或者当您需要执行并集、相交、差等集合操作时。

语法和示例:

thisset = {"apple", "banana", "cherry"}print(thisset)# Note: the set list is unordered, meaning: the items will appear in a random order.#OUTPUT{'banana', 'apple', 'cherry'}词典:键值配对

定义:字典是键值对的无序集合。键必须是唯一且不可变的,但值可以是任何类型且可变的。

语法: 使用大括号 {} 创建,键值对以冒号分隔 : 。

特征:

键值对允许通过键直接访问值。键必须是唯一且不可变的(例如,字符串、数字或元组)。值可以是任何类型,并且可以更改。可以添加、删除或更改元素。

用例:当您需要将键与值相关联时,例如通过某些标识符查找值。非常适合映射或存储数据,以便通过其名称或标识符轻松检索数据。

在 Python 版本中在 Python v3.1 中:引入了一种名为“OrderedDict”的新型字典,类似于 python 中的字典;区别在于 orderedDict 是有序的(顾名思义)在最新版本的 Python 中,即 3.7: 最后,在 python 3.7 中,字典现在是键值对的有序集合。现在,在插入顺序(即插入顺序)中保证了顺序。

语法和示例:

dict1 = {"key1": "value1", "key2": "value2"}dict2 = {}dict3 = dict({1: "one", 2: "two"})print(dict1)print(dict2)print(dict3)#OUTPUT{'key1': 'value1', 'key2': 'value2'}{}{1: 'one', 2: 'two'}

索引

dict1 = {"one": 1, "two": 2, "three": 3}print(dict1.keys)print(dict1.values)print(dict1['two'])#OUTPUTdict_keys(['one', 'two', 'three'])dict_values([1, 2, 3])2

添加新元素

dict1 = {"India": "IN", "United States": "USA", "Algeria": "DZ"}dict1.update({"Aruba": "AW"})print(dict1)dict1.pop("Algeria")print(dict1)#OUTPUT{'India': 'IN', 'United States': 'USA', 'Algeria': 'DZ', 'Aruba': 'AW'}{'India': 'IN', 'United States': 'USA', 'Aruba': 'AW'}

Deleting 元素

dict1 = {"India": "IN", "United States": "USA", "Algeria": "DZ"}dict1.pop('Algeria')print(dict1)#OUTPUT{'India': 'IN', 'United States': 'USA'}

排序元素

dict1 = {"India": "IN", "United States": "USA", "Algeria": "DZ"}print(sorted(dict1))#OUTPUT['Algeria', 'India', 'United States']dict1 = {"India": "IN", "United States": "USA", "Algeria": "DZ"}print(dict1['Algeria'])#OUTPUTDZ

注意:无序列集缺少维护数据添加顺序的数据结构。另一方面,有序集合具有这样的数据结构。

字典(在 Python v3.6 及更早版本中)可能看起来是有序的,但事实并非如此;另一方面,集合是无序集合。虽然它确实保存了已添加到其中的密钥,但仍可以通过密钥进行访问,但不能以精确的整数索引进行访问。在字典中,每个键都是不同的,并用作获取值的索引。但是,字典的密钥存储不会按输入顺序保存,因此无法排序。另一方面,Python 3.1 的“OrderedDict”和 Python 3.7 的 Dictionary 是键值数据的有序集合,因为它们保留了插入顺序。字典:键值对用大括号 {} 括起来,用逗号分隔。列表:使用方括号 表示以逗号分隔的条目。设置:使用大括号 { } 的逗号分隔元素。元组:使用括号用逗号分隔组件。次序字典:在 Python 3.7+ 中,它保持顺序;在 Python 3.6 中,它是无序的。列表:维护秩序。设置:未安排。元组:维持秩序。重复数据字典:键是唯一的,值可以复制。列表:允许重复元素。设置:不允许重复元素。元组:允许重复元素。索引字典:使用键值对。列表:可以使用 append 方法添加新项目。Set:使用 add 方法。元组:不可变,无法添加新数据。字典:使用 pop(key) 方法删除指定的键和值。List:使用 pop 方法删除元素。Set:使用 pop 方法删除元素。元组:不可变,无法弹出或删除任何数据。

来源:自由坦荡的湖泊AI

相关推荐