📅  最后修改于: 2023-12-03 14:53:12.687000             🧑  作者: Mango
在 Python 中可以使用内置的 list
和 collections.deque
来模拟链表的数据结构。这两种数据类型都提供了在末尾添加元素的方法。
Python 中的 list
是一个可变序列类型,可以通过 append
方法在末尾添加元素。下面是一个简单的示例:
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)
# [1, 2, 3, 4]
Python 中的 collections.deque
是一个双端队列,可以被用来实现栈、队列和双端队列等数据结构。同样地,collections.deque
提供了在末尾添加元素的方法。下面是一个示例:
from collections import deque
my_deque = deque([1, 2, 3])
my_deque.append(4)
print(my_deque)
# deque([1, 2, 3, 4])
在进行大量添加操作时,collections.deque
的性能比 list
更好。这是因为 collections.deque
在内部采用了双向链表的结构,使得在两端添加和删除元素都可以实现 O(1) 的时间复杂度。而 list
则是在末尾添加和删除元素时最优,复杂度为 O(1),但在中间插入和删除元素时复杂度则为 O(n)。
下面是一个简单的性能比较的示例:
from timeit import timeit
num_items = 10000
def append_to_list():
my_list = []
for i in range(num_items):
my_list.append(i)
def append_to_deque():
my_deque = deque()
for i in range(num_items):
my_deque.append(i)
print('Append to list: {:.6f}'.format(timeit(append_to_list, number=1000)))
print('Append to deque: {:.6f}'.format(timeit(append_to_deque, number=1000)))
输出如下:
Append to list: 3.390749
Append to deque: 0.705855
可以看到,在大量添加元素时,collections.deque
的性能比 list
更好。