辞書に存在しないキーを普通に[]で参照するとKeyErrorになります。 >>> d = {} >>> d['foo'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'foo'd.get()を使うと、キーが存在しない場合に返却するデフォルト値を指定できます。が、dの中自体は変更しません。 d.setdefault()を使うと、キーが存在しない場合はデフォルト値を返却し、かつdの中も変更してくれます。 >>> d.get('foo', 'bar') 'bar' >>> d {} >>> d.setdefault('foo', 'bar') 'bar' >>> d {'foo': 'bar'}前に気になっていた if not statetab.has_key((w1, w2))

