如何处理 python 3 中哈希表中的错误?



在哈希表中出现基本错误

n = int(input("Enter the length of the array "))
a = [0 for i in range(n)]

for i in range(0,n):
a[i] = int(input("Enter elements of array: "))
# maxi = max(a)
# print(maxi)
has = [[0 for i in range(n)] 
for j in range(2)]
for i in range(0,n):
if(a[i]>=0):
has[a[i]][0] = 1
else:
has[abs(a[i])][1] = 1
search = int(input("Enter the element to be searched: "))
# if(search>0):

def search1(search):
if(search>0):
if(a[search][0] == 1):
print("Present")
else:
print("Absent")
else:
search = abs(search)
if(a[search][1] == 1):
print("Present")
else:
print("absent")

如果为什么会这样,任何人都可以帮助我吗? 错误:列表索引超出范围

此代码首先从用户那里获取输入数组,然后将数字存储在基于正数或负数的哈希表中。然后基于索引本身进行搜索算法,给出O(1(的时间复杂度。但是在这两者之间,我得到了一个超出范围的列表索引错误。请帮助解决以下错误。

所以,你正在使用列表模拟哈希,对吧?问题是:表达式

[[0 for i in range(n)] 
for j in range(2)]

生成列表列表。如果你打印它,你会看到它有两个项目(两个列表(,所以像a[i]> 1 这样的索引操作将不起作用。也许您想生成具有不同结构的列表?

[[0 for i in range(2)] 
for j in range(n)]

或者您可以更改索引逻辑,例如has[1][abs(a[i])] = 1.

通常,它有助于打印两者之间的变量的状态,以随时了解正在发生的事情。

相关内容

  • 没有找到相关文章

最新更新