私のコードは次のようなものです:
d = defaultdict(list)
for prod_no ,production in enumerate(productions):
cp = Production(*productions[prod_no])
count_yields = len(cp.pattern_list())
#temp.setdefault(temp[cp.lhs()], []).append(count_yields)
d[cp.lhs()].append(count_yields)
print d
出力として、以下のようなものを取得しています。
defaultdict(<type 'list'>, {'A': [3, 3, 4, 3], 'S': [1], 'B': [4,5]})
キー 'A' には 3 と 4 のように異なる複数の値があるため、エラーを報告する必要があります。キー 'B' についても同じことが言えます。
次のような出力が得られた場合、エラーは発生しないはずです
defaultdict(<type 'list'>, {'A': [3, 3, 3, 3], 'S': [1]})
「A」と「S」の両方が同じ値を持っているため...