作者: Fe2+
日時: 2002/5/06(15:24)
Fe2+ です。

ちょっとした改造を思い付きました。

>        try:
>            tbl[name] = tbl[name] + page + ','
>        except KeyError,err:
>            tbl[name] = page + ','

をこうします。
        tbl[name] = tbl.get(name,[]) + [page]

そして
>    print '%-20s... %s'%(i,tbl[i][:-1])

をこうします。
    print '%-20s... %s'%(i,",".join(tbl[i]))

あるいは最初に from string import join しておいてこう(1.5 対応)。
    print '%-20s... %s'%(i,join(tbl[i],","))


(解説)
辞書型の get メソッドは今の例でいうと、tbl.has_key(name) ならば
tbl[name] を返しそうでなければ指定された既定値(今回は [])を返します。

文字列の join メソッド(あるいは string モジュールの join メソッド)は、
文字列のリストやタプルを区切り文字(列)で連結した文字列を返します。

ということで、リストにため込んで最後に整形する感じになります。


',' の付け方で苦労されているようでしたので、こういうのもあるよというだ
けです。効率は却って低下しているかも。

--
MATSUI Fe2+ Tetsushi
 mailto:VED03370@...
 http://member.nifty.ne.jp/Fe/