字典中包含列表时的 Python KeyError

-3 投票
1 回答
4669 浏览
提问于 2025-04-18 07:14

有人能告诉我为什么这个函数会出现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链接的列表。

第二个值的原因是我需要记录这个网址是否已经被爬取过。

顺便说一下,我使用的是Python 3.0。

非常感谢!

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.

在这种情况下,当你检查一个字典里是否有某个键,如果没有的话就要创建它,这时候要记得一定要去创建这个键。

for x in urlList:
        if x in urlCounter:
            urlCounter[x][1] += 1
        else:
            urlCounter[x] = [0,1]

撰写回答