有没有办法附加到 python 中的对象?优先队列
Is there a way to append to an object in python? Priority Queues
目前,我的 enQueue 函数出现错误。当我尝试将数字附加到我的对象列表时,它显示“'set' 对象没有属性 'append'”。我认为问题与我在列表中传递的方式有关,但这是目前我的问题。我有一个大小为 10 的硬编码列表可以使用,因为在我知道发生了什么之前我不想制作更大的列表。任何帮助,将不胜感激。另外,我在代码中的注释是我最终想要做的。如果您对此有任何意见,那将非常有帮助。不过目前,我只想弄清楚如何避免出现该错误。谢谢。
class PQ_List(object):
def __init__(self, sampleList):
print ("creates an unsorted list from passed in list")
self.list = sampleList
print (self.list)
#
# Returns the list
def enQueue(self, item):
print ("adds an item to the PQ")
self.list.append(item)
print (self.list)
# Add an item to the PQ
def deQueue(self):
print ("removes the highest priority item from the PQ")
self.list = self.list[1:]
print (self.list)
# Remove the highest priority item from the PQ
def sneakAPeek(self):
print ("returns the highest priority in the PQ, but does not remove it")
return self.list[0]
#
# Return the highest priority item from the PQ, but don't remove it
def isEmpty(self):
print ("returns T if PQ is empty, F if PQ has entries")
if len(self.list) > 0:
return 'F'
else:
return 'T'
# Return a T if PQ is empty, F if PQ is not empty
#
def size(self):
print ("returns number of items in queue")
return len(self.list)
# Return the number of items in the queue
sampleList = {1, 2, 5, 8, 4, 15, 13, 12, 10, 6}
my_listPQ = PQ_List(sampleList) #print first 10 numbers, use size to prove the rest is there
my_listPQ.enQueue(1500)
my_listPQ.deQueue()
my_listPQ.sneakAPeek()
my_listPQ.isEmpty()
my_listPQ.size()
我希望输出将 1500 添加到 enQueue 函数的列表中。然后执行以下功能。
如有任何帮助,我们将不胜感激!
在 python 中,您使用方括号 [
、]
表示列表,使用大括号 {
、}
表示集合。
因此,更改行
sampleList = {1, 2, 5, 8, 4, 15, 13, 12, 10, 6}
到
sampleList = [1, 2, 5, 8, 4, 15, 13, 12, 10, 6]
一切顺利。
改变
sampleList = {1, 2, 5, 8, 4, 15, 13, 12, 10, 6} # this is set and don't have append
给这个:
sampleList = [1, 2, 5, 8, 4, 15, 13, 12, 10, 6] # this is list
目前,我的 enQueue 函数出现错误。当我尝试将数字附加到我的对象列表时,它显示“'set' 对象没有属性 'append'”。我认为问题与我在列表中传递的方式有关,但这是目前我的问题。我有一个大小为 10 的硬编码列表可以使用,因为在我知道发生了什么之前我不想制作更大的列表。任何帮助,将不胜感激。另外,我在代码中的注释是我最终想要做的。如果您对此有任何意见,那将非常有帮助。不过目前,我只想弄清楚如何避免出现该错误。谢谢。
class PQ_List(object):
def __init__(self, sampleList):
print ("creates an unsorted list from passed in list")
self.list = sampleList
print (self.list)
#
# Returns the list
def enQueue(self, item):
print ("adds an item to the PQ")
self.list.append(item)
print (self.list)
# Add an item to the PQ
def deQueue(self):
print ("removes the highest priority item from the PQ")
self.list = self.list[1:]
print (self.list)
# Remove the highest priority item from the PQ
def sneakAPeek(self):
print ("returns the highest priority in the PQ, but does not remove it")
return self.list[0]
#
# Return the highest priority item from the PQ, but don't remove it
def isEmpty(self):
print ("returns T if PQ is empty, F if PQ has entries")
if len(self.list) > 0:
return 'F'
else:
return 'T'
# Return a T if PQ is empty, F if PQ is not empty
#
def size(self):
print ("returns number of items in queue")
return len(self.list)
# Return the number of items in the queue
sampleList = {1, 2, 5, 8, 4, 15, 13, 12, 10, 6}
my_listPQ = PQ_List(sampleList) #print first 10 numbers, use size to prove the rest is there
my_listPQ.enQueue(1500)
my_listPQ.deQueue()
my_listPQ.sneakAPeek()
my_listPQ.isEmpty()
my_listPQ.size()
我希望输出将 1500 添加到 enQueue 函数的列表中。然后执行以下功能。 如有任何帮助,我们将不胜感激!
在 python 中,您使用方括号 [
、]
表示列表,使用大括号 {
、}
表示集合。
因此,更改行
sampleList = {1, 2, 5, 8, 4, 15, 13, 12, 10, 6}
到
sampleList = [1, 2, 5, 8, 4, 15, 13, 12, 10, 6]
一切顺利。
改变
sampleList = {1, 2, 5, 8, 4, 15, 13, 12, 10, 6} # this is set and don't have append
给这个:
sampleList = [1, 2, 5, 8, 4, 15, 13, 12, 10, 6] # this is list