石本です。
On Thu, 15 Aug 2002 15:32:17 +0900
藤岡和夫 <kazuf@...> wrote:
> Perlなら、
>
> u_data{goods} .= "\t" . uriage{goods}
>
> のように簡単に書ける変数にデータを追加する部分に一時的に記憶させる配列
> bufferを使っているのですが、他に良い方法はないでしょうか。
u_data[goods] = u_data.get(goods, '') + '\t' + uriage[goods]
かな?
ついでに、最近のPythonではこんな風にも書ける、という例として(多分)同じ
結果になる(と思う)スクリプトを書いてみました。ご参考までに。
# もうちょっと便利で分かりにくい機能もありますが、そっちは省略(^^;
goodss = ['goods1', 'goods2', 'goods3']
files = ['2002-04.txt', '2002-05.txt']
uriage = {}
files.sort()
for name in files:
# 当月のデータの初期値(0)をセット
for goods in goodss:
p = uriage.setdefault(goods, [])
p.append('0')
for line in open(name):
goods, num = line.split()
# 当月のデータを更新
uriage[goods][-1] = num
goodss.sort()
for goods in goodss:
print "%s\t%s" % (goods, "\t".join(uriage[goods]))
--------------------------
Atsuo Ishimoto
ishimoto@...
Homepage:http://www.gembook.jp