2.5 Python 编程基础:列表与元组

65 阅读4分钟

在 Python 中,列表(List)和元组(Tuple)是两种非常重要的数据结构,它们用于存储有序的数据集合。本文将详细介绍列表和元组的基本概念、操作以及它们之间的差异。

列表(List)

列表的基本概念

列表是 Python 中的一种内置数据结构,用于存储一系列的元素。列表中的元素可以是任意类型,包括数字、字符串、甚至其他列表。

列表的创建

my_list = [1, 2, 3]

列表的追加

使用 append() 方法可以向列表末尾添加一个元素。

my_list.append(4)  # 结果: [1, 2, 3, 4]

列表的插入

使用 insert() 方法可以在指定位置插入一个元素。

my_list.insert(1, 'a')  # 结果: [1, 'a', 2, 3, 4]

列表的删除

  • 使用 remove() 删除列表中第一个匹配的元素,如果元素不存在会报错。
    my_list.remove('a')  # 删除元素 'a'
    
  • 使用 pop() 可以删除指定索引的元素,也可以将删除的元素赋值给一个变量。
    removed_element = my_list.pop(1)  # 删除索引1的元素并赋值给变量
    

清空列表

使用 clear() 方法可以清空列表中的所有元素。

my_list.clear()  # 清空列表

列表元素排序

使用 sort() 方法可以对列表进行排序。

my_list.sort()  # 升序排序

获取列表长度

使用 len() 函数可以获取列表的长度。

length = len(my_list)

列表索引

列表索引用于访问列表中的元素,索引从 0 开始。

element = my_list[0]  # 获取第一个元素

列表的修改和删除

列表中的元素可以通过索引进行修改或删除。

my_list[0] = 10  # 修改第一个元素
del my_list[1]  # 删除索引为1的元素

列表的切片

切片用于获取列表的一部分。

sub_list = my_list[1:3]  # 获取索引1到2的元素(前包后不包)

列表的 for 循环

使用 for 循环可以遍历列表中的每个元素。

for element in my_list:
    print(element)

列表的嵌套

列表可以包含其他列表,形成嵌套列表。

nested_list = [[1, 2], [3, 4]]
# 嵌套取值示例
print(nested_list[0][1])  # 输出: 2

元组(Tuple)

元组的基本概念

元组与列表类似,也是用于存储有序的数据集合,但元组是不可变的,一旦创建就不能修改。

元组的创建

my_tuple = (1, 2, 3)

元组的不可修改性

尝试修改元组中的元素将会引发错误。

# my_tuple[0] = 10  # 这将报错,因为元组不可修改

元组中单个值的注意点

如果元组中只有一个值,需要在值后添加逗号,否则它不是一个元组。

single_value_tuple = (1,)  # 正确
not_a_tuple = (1)  # 这不是一个元组,这是1这个值

元组的长度、索引、切片

元组的长度、索引和切片操作与列表类似。

length = len(my_tuple)
element = my_tuple[0]
sub_tuple = my_tuple[1:3]

元组与 for 循环

元组可以与 for 循环一起使用,遍历元组中的每个元素。

for element in my_tuple:
    print(element)

元组的嵌套

元组可以包含其他元组或列表,形成嵌套结构。

nested_tuple = (1, [2, 3], (4, 5))
# 嵌套取值示例
print(nested_tuple[1][1])  # 输出: 3
# 即使元组不可变,但元组中的列表是可以修改的
nested_tuple[1].append(6)  # 修改列表

结语

列表和元组是 Python 中非常有用的数据结构,它们各自有不同的特性和用途。列表的灵活性和元组的不可变性使得它们在不同的场景下发挥着重要的作用。理解并掌握它们的特性,将有助于你更有效地使用 Python 进行编程。

在AI时代,学习Python编程基础,尤其是列表与元组这类核心概念,依然至关重要。它们不仅是编程语言的基石,更是理解和应用高级AI技术的基础。掌握这些基础知识可以让我们更有效地与AI工具交互,开发定制化的解决方案,以及在AI领域中进行创新。随着AI技术的不断进步,具备编程能力的人将更有可能在未来的技术革新中发挥关键作用。