Python - 列表

你好,有抱负的程序员们!今天,我们将深入探讨 Python 列表的奇妙世界。作为你们友好的计算机科学老师,我很兴奋能引导你们完成这次学习之旅。让我们从基础知识开始,逐步深入到更高级的概念。相信我,在本教程结束时,你们使用列表将会像专业人士一样熟练!?

Python - Lists

Python 列表

Python 中的列表就像是数据结构中的瑞士军刀。它们功能多样、易于使用且非常强大。想象一下,你正在组织一个聚会,需要跟踪你的客人。列表将是完美选择!

让我们创建第一个列表:

guests = ["Alice", "Bob", "Charlie", "David"]
print(guests)

运行这段代码,你会看到:

['Alice', 'Bob', 'Charlie', 'David']

恭喜!你刚刚创建了你的第一个列表。但这里到底发生了什么呢?

在 Python 中,列表是一系列用方括号 [] 包围的项,每个项之间用逗号分隔。这些项可以是任何类型 - 字符串、数字,甚至是其他列表!

这里有一个包含多种数据类型的例子:

mixed_list = [42, "Hello", 3.14, True, [1, 2, 3]]
print(mixed_list)

输出:

[42, 'Hello', 3.14, True, [1, 2, 3]]

正如你所看到的,我们的列表包含了一个整数、一个字符串、一个浮点数、一个布尔值,甚至另一个列表!

访问列表中的值

现在我们有了客人列表,我们如何查看谁要来呢?这时索引就派上用场了。在 Python 中,列表索引从 0 开始。所以,要访问第一个项,我们使用索引 0。

guests = ["Alice", "Bob", "Charlie", "David"]
print(guests[0])  # 第一个客人
print(guests[2])  # 第三个客人
print(guests[-1])  # 最后一个客人

输出:

Alice
Charlie
David

注意到我们使用 -1 来访问最后一个项了吗?负索引从列表的末尾开始。这就像是从后往前数!

更新列表

哎呀!我们忘了邀请 Eve。让我们把她加到列表里:

guests = ["Alice", "Bob", "Charlie", "David"]
guests.append("Eve")
print(guests)

输出:

['Alice', 'Bob', 'Charlie', 'David', 'Eve']

append() 方法将一个项添加到列表的末尾。但如果我们想把 Eve 加在 Bob 和 Charlie 之间呢?

guests.insert(2, "Eve")
print(guests)

输出:

['Alice', 'Bob', 'Eve', 'Charlie', 'David', 'Eve']

现在我们有两个 Eve!让我们在下一节中修正这个问题。

删除列表元素

有时,我们需要从列表中移除项。让我们移除多余的 Eve:

guests = ['Alice', 'Bob', 'Eve', 'Charlie', 'David', 'Eve']
guests.remove("Eve")
print(guests)

输出:

['Alice', 'Bob', 'Charlie', 'David', 'Eve']

remove() 方法移除了指定项的第一个出现。如果我们知道索引,我们可以使用 pop()

removed_guest = guests.pop(3)
print(f"{removed_guest} 不能来了。")
print(guests)

输出:

David 不能来了。
['Alice', 'Bob', 'Charlie', 'Eve']

Python 列表操作

Python 中的列表带来了一些很酷的技巧。让我们探索一些:

# 连接
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2
print(combined)

# 重复
repeated = [1, 2, 3] * 3
print(repeated)

# 长度
guests = ['Alice', 'Bob', 'Charlie', 'Eve']
print(len(guests))

输出:

[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
4

索引、切片和矩阵

记得我们如何访问单个项吗?我们也可以使用切片一次获取多个项:

guests = ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
print(guests[1:4])  # 从索引 1 开始,到索引 4(不包括)
print(guests[:3])   # 从开始到索引 3(不包括)
print(guests[2:])   # 从索引 2 到末尾
print(guests[::2])  # 每隔一个项

输出:

['Bob', 'Charlie', 'David']
['Alice', 'Bob', 'Charlie']
['Charlie', 'David', 'Eve']
['Alice', 'Charlie', 'Eve']

列表也可以用来创建矩阵(二维列表):

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[1][1])  # 访问第二行第二列的元素

输出:

5

Python 列表方法

Python 为列表提供了多种内置方法。以下是一些常见的方法:

方法 描述
append() 在列表末尾添加元素
clear() 移除列表中的所有元素
copy() 返回列表的副本
count() 返回具有指定值的元素数量
extend() 将列表的元素添加到当前列表的末尾
index() 返回具有指定值的第一个元素的索引
insert() 在指定位置添加元素
pop() 移除指定位置的元素
remove() 移除第一个具有指定值的项
reverse() 反转列表的顺序
sort() 对列表进行排序

让我们尝试一些:

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
numbers.sort()
print(numbers)
numbers.reverse()
print(numbers)
print(numbers.count(5))

输出:

[1, 1, 2, 3, 3, 4, 5, 5, 6, 9]
[9, 6, 5, 5, 4, 3, 3, 2, 1, 1]
2

与列表一起使用的内置函数

Python 还提供了几个与列表一起使用的内置函数:

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
print(max(numbers))  # 最大值
print(min(numbers))  # 最小值
print(sum(numbers))  # 所有值的和

输出:

9
1
39

就是这些了,各位!我们已经穿越了 Python 列表的领域,从创建到操作,从简单操作到内置方法。请记住,熟能生巧,所以不要害怕尝试这些概念。

在结束之前,这里有一个有趣的事实:你知道 Python 列表实际上是作为动态数组实现的吗?这意味着它们可以根据需要增长或缩小,使其非常灵活。

希望你们享受这个教程,就像我享受引导你们一样。继续编码,继续学习,最重要的是,继续享受 Python 的乐趣!

Credits: Image by storyset