-3

谁能告诉我为什么那个函数给了我一个 KeyError?

def countLinks(url):
    urlCounter = {"dummy":[0,0]}
    urlList = getLinks(url)
    for x in urlList:
        if x in urlCounter:
            urlCounter[x][1] += 1
        else:
            urlCounter[x][1] = 1
    return urlCounter

getLinks 只返回一个包含 HTML 链接的列表。

第二个值的原因是我需要跟踪此 URL 是否已被爬取。

顺便说一句,使用了 Python 3.0。

多谢提前

4

1 回答 1

2
for x in urlList:
        if x in urlCounter:
            urlCounter[x][1] += 1
        else:
            urlCounter[x][1] = 1  # you need to create the dict entry here too.

在这种情况下,当检查 dict 是否有键并在没有键时创建它时,记住创建它很重要。

for x in urlList:
        if x in urlCounter:
            urlCounter[x][1] += 1
        else:
            urlCounter[x] = [0,1]
于 2014-05-21T19:45:10.310 回答