Python 使用类或内置结构实现数据结构更好吗?
我正在学习数据结构,有一个问题。在我阅读的教科书中,它们展示了一个堆栈的实现,如下所示:Python 使用类或内置结构实现数据结构更好吗?,python,data-structures,Python,Data Structures,我正在学习数据结构,有一个问题。在我阅读的教科书中,它们展示了一个堆栈的实现,如下所示: class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(self):
class Stack:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
我不需要创建一个全新的类?为什么他们不能创建这样的堆栈:
myStack = []
>>> myStack.append('a')
>>> myStack.append('b')
>>> myStack.append('c')
>>> myStack
['a', 'b', 'c']
>>> myStack.pop()
'c'
>>> myStack.pop()
'b'
>>> myStack.pop()
'a'
它更快还是更通用?我想了解其中的区别,以便在需要时能够决定如何实施
谢谢大家! 这只是一个基本示例,让您了解如何实现自己的数据结构。列表已经可以用作堆栈了,但是对于更复杂的数据结构来说,没有任何内置的数据结构可以这么好地工作。内置数据结构(如
list
)几乎总是比用Python编写的任何数据结构都要快。这个Stack
的实现使用了一个列表作为堆栈,因此只会增加额外的开销
如果一个数据结构没有内置到Python中,并且不是由标准库提供的,那么您必须创建一个类。如果内置数据结构不提供所需的方法(如
peek
),则可以创建一个类。对于堆栈,可以使用list
对象,因为它已经实现了所有堆栈方法,但一般情况下,可以使用类。尽管如此,即使是在堆栈的情况下,这也允许您在需要时更改实现。