-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 リンクを含むリストを返すだけです。

2 番目の値の理由は、この URL がクロールされたかどうかを追跡する必要があるためです。

ところで Python 3.0 を使用しました。

事前に多くのthx

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.

この状況では、辞書にキーがあるかどうかを確認し、そこにない場合は作成するときに、忘れずに作成することが重要です。

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