集合、列表和元组之间的区别


在 Python 中使用数据结构提供了一种复杂且复杂的方法来表示数字、字符串和其他 Python 对象的集合。Python 的内置数据结构,如列表、元组和集合,非常吸引人,并且表现出将它们彼此区分开的独特特征。这些数据结构具有容纳对象组的非凡能力,这使得它们独一无二。在本文中,我们将通过示例了解这三种数据结构中哪一种最适合。

列表

创建后,可以更改、添加或删除项目。它也可以被修改和重新排序,并且由于它是索引的,因此可以根据其位置访问单个项目。

示例

my_list = [1, 2, 3, 4, 5]
print(my_list)

输出

[1, 2, 3, 4, 5]

创建列表时,您会得到一个可以更改和重新排序的项目集合。项目可以包含在方括号中,并使用list() 函数创建。可以使用索引或切片访问元素;append() 和extend() 方法用于添加元素;remove() 和pop() 方法用于删除元素;关键字 in 用于检查元素;len() 函数用于确定列表的长度;sort() 方法用于排序和反转列表中元素的顺序。

示例

# Create a list
fruits = ['apple', 'banana', 'orange']

# Access elements
print(fruits[0])

# Add elements
fruits.append('kiwi')
print(fruits)

# Remove elements
fruits.remove('banana')
print(fruits)

# Check if element is in list
print('apple' in fruits)

# Find length of list
print(len(fruits))

# Sort the list
fruits.sort()
print(fruits)

# Reverse the list
fruits.reverse()
print(fruits)

输出

apple
['apple', 'banana', 'orange', 'kiwi']
['apple', 'orange', 'kiwi']
True
3
['apple', 'kiwi', 'orange']
['orange', 'kiwi', 'apple']

元组

一个不可变的项目集合,是有序的,并且创建后无法添加任何内容;此外,您无法更改任何内容);并且可索引(您可以根据其位置找到特定的项目)。

示例

my_tuple = (1, 2, 3, 4, 5)
print(my_tuple)

输出

(1, 2, 3, 4, 5)

可以使用两种方法中的一种来创建它们:使用tuple() 函数或通过将组件括起来。可以使用排序或切片来访问元组的各个部分。由于它们是永久的,因此创建后无法更改任何组件。您可以使用“in”来确定元组是否包含一个成分。使用len() 函数确定元组的范围。例如,日期和位置通常存储在元组中,因为它们一旦创建就不能更改。

集合

无序的唯一项目的集合,不能包含重复项;此外,由于集合没有索引,因此无法根据其位置找到单个项目。

示例

my_set = {1, 2, 3, 4, 5}
print(my_set)

输出

{1, 2, 3, 4, 5}

在 Python 中,可以使用包含在花括号中的逗号分隔的值列表来创建集合,它是一个无序的不同组件的集合。可以使用add() 方法或update() 方法将项目添加到集合中。虽然discard() 方法在删除组件时不会执行任何操作,但delete() 方法会引发错误。您可以执行集合操作,如并集、交集和差集,并且可以使用set() 函数将列表转换为集合。在从列表中删除副本或对其应用集合操作时,这很有用。

示例

# Create a set
numbers = {1, 2, 3, 4}

# Add elements
numbers.add(5)
print(numbers)

# Remove elements
numbers.discard(3)
print(numbers)

# Check if element is in set
print(2 in numbers)

# Find length of set
print(len(numbers))

# Perform set operations
set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1.union(set2)) 
print(set1.intersection(set2)) 
print(set1.difference(set2))

# Convert list to set
numbers_list = [1, 2, 3, 4, 5]
numbers_set = set(numbers_list)

输出

{1, 2, 3, 4, 5}
{1, 2, 4, 5}
True
4
{1, 2, 3, 4}
{2, 3}
{1}

列表与元组与集合 - 比较

在学习了列表、元组和集合数据结构的基础知识之后,让我们从不同方面比较它们。

可变与不可变

元组是不可变的,因此一旦定义,它们的组件就不能更改。由于记录和集合是可变的,因此您可以在其中添加、删除或修改组件。如果您需要一种无法修改的数据格式,请使用元组;否则,请使用集合或列表。

顺序

列表和元组保持元素的顺序,而集合则不保持。集合是无序的,元素是随机排列的。

重复元素

列表和集合允许重复元素,而元组则不允许。集合具有一个独特的特性,即它们仅存储唯一元素。因此,如果您只想存储唯一值,请使用集合,否则请使用列表或元组。

性能

由于这些数据结构的内部实现,集合在成员资格检查和重复数据删除方面更快,而列表和元组在索引方面速度较慢。

应用

  • Python 中最常用的数据格式是列表。它们对于以列表形式显示数字很有用,例如数据集中的行或记录中的行。

  • 向量的元素和点的坐标是能够使用元组表示的固定链接值的两个示例。

  • 当您需要保存各种新特征或执行特定任务(如关联、收敛和区分)时,集合很有用。

结论

在本教程中,我们讨论了 Python 中列表、元组和集合之间的区别。记录和集合是可变的,这意味着您可以在其中添加、删除或修改组件,而元组是不可变的,这意味着在定义它们时,您无法添加、删除或调整其中的组件。集合不保持元素的顺序,但列表和元组保持。列表和元组可以包含重复元素,而集合仅允许唯一元素。最后但并非最不重要的一点是,与列表和元组相比,集合的索引和成员资格检查需要更长的时间。根据您的需求,您可以选择合适的信息设计,使您的代码更有效和适应性更强。

更新于: 2023 年 4 月 18 日

2K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告