Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 插入到最大二进制堆和ValueError_Python 3.x - Fatal编程技术网

Python 3.x 插入到最大二进制堆和ValueError

Python 3.x 插入到最大二进制堆和ValueError,python-3.x,Python 3.x,我正在尝试编写一个插入函数。但是我太迷路了。我发现了一个错误: ValueError:无任何原因,列表中没有 我的代码: def __init__(self): self.heap=[] self.size = 0 def parent(self,index): if index<=1: return None elif index>=self.size: return None else:

我正在尝试编写一个插入函数。但是我太迷路了。我发现了一个错误:

ValueError:无任何原因,列表中没有

我的代码:

def __init__(self):
    self.heap=[]
    self.size = 0
def parent(self,index):


    if index<=1:
        return None
    elif index>=self.size:
        return None
    else:
        return self.heap[int((index-1)/2)]

def swap(self, index1, index2):
    self.heap[index1-1], self.heap[index2-1] = self.heap[index2-1], self.heap[index1-1]

def insert(self,x):

    self.heap.append(x)
    self.size = self.size + 1
    #while currentsize :
        #if currentsize[x] > self.parent(self,x):
            #self.swap(currentsize[x],currentsize[int((x-1)/2)])
        #if x > self.parent(x):
            #self.swap((currentsize.index[x])+1, currentsize.index[self.parent(x)]+1)

    while self.heap.index(x)//2>0:
        if self.heap.index(x)>self.heap.index(self.parent(x)):
            #temp = a(x)
            #a.index(x//2) = a.index(x)
            #a.index(x) = temp
            self.swap(self.heap.index(x),self.heap.index(self.parent(x)))
def\uuuu初始化(自):
self.heap=[]
self.size=0
def父级(自我,索引):
如果索引=self.size:
一无所获
其他:
返回self.heap[int((索引-1)/2]
def交换(自身、index1、index2):
self.heap[index1-1],self.heap[index2-1]=self.heap[index2-1],self.heap[index1-1]
def插件(自身,x):
self.heap.append(x)
self.size=self.size+1
#而当前大小:
#如果currentsize[x]>self.parent(self,x):
#自交换(currentsize[x],currentsize[int((x-1)/2)])
#如果x>self.parent(x):
#self.swap((currentsize.index[x])+1,currentsize.index[self.parent(x)]+1)
当self.heap.index(x)//2>0时:
如果self.heap.index(x)>self.heap.index(self.parent(x)):
#温度=a(x)
#a、 索引(x//2)=a.索引(x)
#a、 指数(x)=温度
self.swap(self.heap.index(x)、self.heap.index(self.parent(x)))

您已经创建了self.size,但忘记了从defs外部为其提供变量。我主要关注如何让您的代码为
parent()
工作,并对脚本进行了一些调整。我没有选中
swap
insert
defs,但您现在可以掌握它的窍门了

请参阅另一个示例,了解如何在其他位置使用
self
,以便回答问题。很多文档可以在别处找到

下面的代码打印:

lol [12, 13] 0    # <--- string, list, value
t1
(None, 1)
lol[12,13]0#self.parent(self,x):
#自交换(currentsize[x],currentsize[int((x-1)/2)])
#如果x>self.parent(x):
#self.swap((currentsize.index[x])+1,currentsize.index[self.parent(x)]+1)
hi=self.heap.index(x)#<可重用变量使脚本具有更好的可读性。
当hi//2>0时:
hip=self.heap.index(self.parent(x))#<可重用变量使脚本具有更好的可读性。
如果hi>hip:
#温度=a(x)
#a、 索引(x//2)=a.索引(x)
#a、 指数(x)=温度
自我交换(hi,hip)
如果名称=“\uuuuu main\uuuuuuuu”:
x=12
y=13

h=[x,y]#您已经创建了self.size,但是忘记了从defs外部给它变量。我主要关注如何让您的代码为
parent()
工作,并对脚本进行了一些调整。我没有选中
swap
insert
defs,但您现在可以掌握它的窍门了

请参阅另一个示例,了解如何在其他位置使用
self
,以便回答问题。很多文档可以在别处找到

下面的代码打印:

lol [12, 13] 0    # <--- string, list, value
t1
(None, 1)
lol[12,13]0#self.parent(self,x):
#自交换(currentsize[x],currentsize[int((x-1)/2)])
#如果x>self.parent(x):
#self.swap((currentsize.index[x])+1,currentsize.index[self.parent(x)]+1)
hi=self.heap.index(x)#<可重用变量使脚本具有更好的可读性。
当hi//2>0时:
hip=self.heap.index(self.parent(x))#<可重用变量使脚本具有更好的可读性。
如果hi>hip:
#温度=a(x)
#a、 索引(x//2)=a.索引(x)
#a、 指数(x)=温度
自我交换(hi,hip)
如果名称=“\uuuuu main\uuuuuuuu”:
x=12
y=13

h=[x,y]#这看起来像一个方法,而不是一个函数。您可以添加代码吗?该代码显示如何初始化
self.heap
self.parent
。您还应该添加完整的回溯和一系列重复错误的参数
x
。您好,我已经更新了代码。堆函数缺少上下文。修复了缩进并删除了双脚本代码(等待同行审查)。您尚未提供错误的回溯。我怀疑,
None
来自一个
self.parent
调用,但我需要回溯来确定。正如您所见,我已经为您更新了答案。有一些内联注释解释了一些事情(也称为使用打印语句进行本地调试)。这看起来像是一个方法,而不是一个函数。您可以添加代码吗?该代码显示如何初始化
self.heap
self.parent
。您还应该添加完整的回溯和一系列重复错误的参数
x
。您好,我已经更新了代码。堆函数缺少上下文。修复了缩进并删除了双脚本代码(等待同行审查)。您尚未提供错误的回溯。我怀疑,
None
来自一个
self.parent
调用,但我需要回溯来确定。正如您所见,我已经为您更新了答案。有内联注释解释了一些事情(也称为使用打印语句进行本地调试)。对不起,我是stackoverflow新手。我已经更新了代码对不起,我是stackoverflow的新手。我已经更新了我的代码