包含列表的字典中的Python KeyError

时间:2014-05-21 19:39:40

标签: python dictionary keyerror

有谁可以告诉我为什么该函数会给我一个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链接的列表。

第二个值的原因是我需要跟踪此网址是否已被抓取。

使用BTW Python 3.0。

提前很多

1 个答案:

答案 0 :(得分: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]