Post

Python DataStruct

list

列表(List)是 Python 中最常用的数据结构之一,它可以存储多个元素,并且允许对其中的元素进行添加、删除、修改和排序等操作。列表用方括号 [] 表示,每个元素用逗号 , 分隔。

  • 以下是一个简单的列表示例:
1
my_list = [1, 2, 3, "four", 5.0]
  • 可以通过索引值来访问列表中的元素。索引值从0开始,表示第一个元素,依次类推。例如,要访问上面列表中的第三个元素(即数字 3 ),可以使用以下代码:
1
print(my_list[2])  # 输出:3
  • 还可以使用切片(slice)来访问列表中的一部分元素。切片可以理解为提取列表中的一个子集,其语法为 [start:stop:step] ,其中 start 表示起始位置,stop 表示结束位置(不包含该位置的元素),step 表示步长(默认为1)。例如,要提取上面列表中的前三个元素,可以使用以下代码:
1
print(my_list[:3])  # 输出:[1, 2, 3]
  • 除此之外,还可以使用内置函数对列表进行操作,例如:

  • append():向列表末尾添加一个元素;
  • extend():将一个列表中的元素添加到另一个列表的末尾;
  • insert():在列表的指定位置插入一个元素;
  • remove():从列表中删除指定元素的第一个匹配项;
  • pop():移除并返回列表中指定索引处的元素;
  • sort():对列表进行排序;
  • reverse():反转列表中的元素顺序。

  • 例如,要向上面的列表中添加一个字符串 "six",可以使用以下代码:
1
2
my_list.append("six")
print(my_list)  # 输出:[1, 2, 3, 'four', 5.0, 'six']
  • 还可以使用以下代码将另一个列表 [7, 8, 9] 中的元素添加到该列表的末尾:
1
2
my_list.extend([7, 8, 9])
print(my_list)  # 输出:[1, 2, 3, 'four', 5.0, 'six', 7, 8, 9]

stack

堆栈是一种常见的数据结构,它可以用来存储一组元素,其中最后加入的元素最先被取出。也就是说,堆栈遵循“后进先出”的原则(Last In First Out, LIFO)。在堆栈中,只允许在顶部进行插入和删除操作,因此堆栈也被称为“栈”(Stack)。

  • Python 中可以使用列表来实现堆栈。具体来说,可以使用 append() 方法向列表末尾添加一个元素,使用 pop() 方法从列表末尾移除一个元素。例如,以下代码演示了如何使用列表实现一个简单的堆栈:
1
2
3
4
5
6
7
8
9
10
11
stack = []  # 创建一个空栈

# 向栈中添加元素
stack.append(1)
stack.append(2)
stack.append(3)

# 从栈中取出元素
print(stack.pop())  # 输出:3
print(stack.pop())  # 输出:2
print(stack.pop())  # 输出:1

在上面的代码中,我们首先创建了一个空列表 stack,然后使用 append() 方法向栈中依次添加元素 123 。接着,我们使用 pop() 方法从栈中依次取出元素,并分别输出它们的值。由于堆栈遵循“后进先出”的原则,因此最后加入的元素 3 最先被取出,其次是 21

  • 需要注意的是,如果尝试从空栈中取出元素,将会引发 IndexError 异常。因此,在使用栈时应该先判断栈是否为空。例如,以下代码演示了如何在弹出元素前检查栈是否为空:
1
2
3
4
5
6
7
8
9
10
11
12
stack = []

if not stack:
    print("栈为空")

# 尝试从空栈中弹出元素
try:
    item = stack.pop()
except IndexError:
    print("栈已为空")
else:
    print(item)

在上面的代码中,我们首先创建了一个空列表 stack,然后使用 if not stack 判断栈是否为空。由于栈为空,因此输出一条提示信息。接着,我们使用 try...except...else... 结构来尝试从空栈中弹出元素。由于栈已经为空,因此将会引发 IndexError 异常,并输出一条提示信息。

队列

队列是一种常见的数据结构,它可以用来存储一组元素,并且保证最先加入的元素最先被取出。也就是说,队列遵循“先进先出”的原则(First In First Out, FIFO)。在队列中,只允许在队尾进行插入操作,在队头进行删除操作,因此队列也被称为“先进先出队列”(First-In-First-Out Queue,FIFO Queue)。

  • Python 中可以使用列表来实现队列。具体来说,可以使用 append() 方法向列表末尾添加一个元素,使用 pop() 方法从列表头部移除一个元素。例如,以下代码演示了如何使用列表实现一个简单的队列:
1
2
3
4
5
6
7
8
9
10
11
queue = []  # 创建一个空队列

# 向队列中添加元素
queue.append(1)
queue.append(2)
queue.append(3)

# 从队列中取出元素
print(queue.pop(0))  # 输出:1
print(queue.pop(0))  # 输出:2
print(queue.pop(0))  # 输出:3

在上面的代码中,我们首先创建了一个空列表 queue,然后使用 append() 方法向队列中依次添加元素 123 。接着,我们使用 pop(0) 方法从队列中依次取出元素,并分别输出它们的值。由于队列遵循“先进先出”的原则,因此最先加入的元素 1 最先被取出,其次是 23

  • 需要注意的是,如果尝试从空队列中取出元素,将会引发 IndexError 异常。因此,在使用队列时应该先判断队列是否为空。例如,以下代码演示了如何在弹出元素前检查队列是否为空:
1
2
3
4
5
6
7
8
9
10
11
12
queue = []

if not queue:
    print("队列为空")

# 尝试从空队列中弹出元素
try:
    item = queue.pop(0)
except IndexError:
    print("队列已为空")
else:
    print(item)

在上面的代码中,我们首先创建了一个空列表 queue,然后使用 if not queue 判断队列是否为空。由于队列为空,因此输出一条提示信息。接着,我们使用 try...except...else... 结构来尝试从空队列中弹出元素。由于队列已经为空,因此将会引发 IndexError 异常,并输出一条提示信息。

This post is licensed under CC BY 4.0 by the author.