你的错误:
index.insert(find_key_pos + len(keyword), url)
第一个参数
list.insert()
是新元素的索引。实际上,您只需要获取关键字的列表,并在嵌套列表中附加一个新的URL。
你想要的是:
index[find_key_pos].append(url)
第二个缺陷在于对
index
但是您真正应该做的是查找Python字典。它们提供了开箱即用的关键字功能。
下面是一个小的dict包装器,可以让你的生活更轻松:
class ListDict():
def __init__(self):
self.index = ()
def addEntry(self, key, entry):
if key in self.index:
self.index[key].append(entry)
else:
self.index[key] = [entry]
def getEntries(self, key):
if key in self.index:
return self.index[key]
else:
return []
websiteUrls = ListDict()
websiteUrls.addEntry("udemy", "foo")
websiteUrls.addEntry("udemy", "bar")
websiteUrls.getEntries("udemy")
# ["foo", "bar"]
websiteUrls.getEntries("nope")
# []