详解Python中List、Set和Tuple的区别

  • Post category:Python

让我们来详细讲解Python中List、Set和Tuple的区别。

List

List 是 Python 中最常用的数据类型之一,它是一个有序、可变的集合。它的元素可以是不同的数据类型,例如数字、字符串、列表等等。你可以通过下标来访问、修改、添加、删除元素。

定义和创建 List

在 Python 中,List 用方括号 [] 来表示,元素之间使用逗号分隔。例如:

numbers = [1, 2, 3, 4, 5]
fruits = ["apple", "banana", "pear"]
mixed = [1, "apple", 3.14, True, [1, 2, 3]]

操作 List

访问元素

List 中的元素可以通过下标来访问,下标从 0 开始。例如:

numbers = [1, 2, 3, 4, 5]
print(numbers[0])   # 输出 1
print(numbers[2])   # 输出 3

修改元素

List 中的元素是可变的,可以通过下标来修改元素。例如:

numbers = [1, 2, 3, 4, 5]
numbers[0] = 10
print(numbers)   # 输出 [10, 2, 3, 4, 5]

添加元素

可以通过 append() 方法向 List 的末尾添加元素,也可以通过 insert() 方法在指定位置插入元素。例如:

numbers = [1, 2, 3, 4, 5]
numbers.append(6)
print(numbers)    # 输出 [1, 2, 3, 4, 5, 6]

numbers.insert(0, 0)
print(numbers)    # 输出 [0, 1, 2, 3, 4, 5, 6]

删除元素

可以通过 remove() 方法删除指定元素,也可以通过 del 语句删除指定下标的元素。例如:

numbers = [1, 2, 3, 4, 5]
numbers.remove(3)
print(numbers)    # 输出 [1, 2, 4, 5]

del numbers[0]
print(numbers)    # 输出 [2, 4, 5]

Set

Set 是 Python 中的另一个数据类型,它是一个无序的、不可重复的集合。它的元素可以是数字、字符串、元组等,但不能是列表、字典等可变类型。Set 可以用于去除重复元素和测试两个集合之间的交集、并集等操作。

定义和创建 Set

在 Python 中,Set 用花括号 {} 或 set() 函数来创建,元素之间使用逗号分隔。例如:

numbers = {1, 2, 3, 4, 5}
letters = set("hello")
mixed = {1, "apple", 3.14, True}

操作 Set

添加元素

可以通过 add() 方法向 Set 中添加元素,如果添加的元素已经存在,则不会重复添加。例如:

numbers = {1, 2, 3, 4, 5}
numbers.add(6)
print(numbers)    # 输出 {1, 2, 3, 4, 5, 6}

numbers.add(6)
print(numbers)    # 输出 {1, 2, 3, 4, 5, 6}

删除元素

可以通过 remove() 或 discard() 方法删除指定元素,如果元素不存在则不做任何操作。例如:

numbers = {1, 2, 3, 4, 5}
numbers.remove(3)
print(numbers)    # 输出 {1, 2, 4, 5}

numbers.discard(3)
print(numbers)    # 输出 {1, 2, 4, 5}

交集、并集、差集

可以使用 &、|、- 运算符来计算两个 Set 之间的交集、并集和差集。例如:

set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}

print(set1 & set2)   # 输出 {3, 4, 5}
print(set1 | set2)   # 输出 {1, 2, 3, 4, 5, 6, 7}
print(set1 - set2)   # 输出 {1, 2}

Tuple

Tuple 是 Python 中的另一种数据类型,它是一个有序、不可变的集合,一旦创建后不能再修改。Tuple 的元素也可以是不同的数据类型,例如数字、字符串、元组等。

定义和创建 Tuple

在 Python 中,Tuple 用圆括号 () 来表示,元素之间使用逗号分隔。例如:

numbers = (1, 2, 3, 4, 5)
letters = ("a", "b", "c")
mixed = (1, "apple", 3.14)

操作 Tuple

访问元素

Tuple 中的元素可以通过下标来访问。例如:

numbers = (1, 2, 3, 4, 5)
print(numbers[0])   # 输出 1
print(numbers[2])   # 输出 3

元素不可变

Tuple 中的元素不可变,如果试图修改元素会抛出 TypeError 异常。例如:

numbers = (1, 2, 3, 4, 5)
numbers[0] = 10    # 抛出 TypeError 异常

不可以添加或删除元素

Tuple 在创建后就不能再添加或删除元素了。例如:

numbers = (1, 2, 3, 4, 5)
numbers.append(6)    # 抛出 AttributeError 异常

del numbers[0]       # 抛出 TypeError 异常

示例说明

示例 1:使用 Set 去除 List 中的重复元素

numbers = [1, 2, 3, 4, 5, 3, 4, 2]
numbers_set = set(numbers)
unique_numbers = list(numbers_set)
print(unique_numbers)    # 输出 [1, 2, 3, 4, 5]

在这个示例中,我们先创建了一个包含重复元素的 List,然后使用 Set 来去除重复元素,最后再将 Set 转换为 List。

示例 2:使用 Tuple 存储常量

PI = 3.14159
GRAVITY = 9.8
SETTINGS = (PI, GRAVITY)

在这个示例中,我们使用 Tuple 来存储常量,Tuple 中的元素不可变,可以避免将常量值误修改。