開発環境
- Mac OS X Snow Leopard (OS)
- WingIDE
- Script言語: Python
『初めてのコンピュータサイエンス』(Jennifer Campbell, Paul Gries, Jason Montojo, Greg Wilson 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-463-7)の8章(ファイルの処理), 8.8(練習問題), 2を解いてみる。
2.
コード
def read_weather_data(r):
fields=(
((4,int),(2,int),(2,int)),
((2,int),(2,int),(2,int)),
((2,int),(2,int),(2,int)),
((6,float),(6,float),(6,float))
)
result=[]
for line in r:
start=0
record=[]
for i in fields:
result_1=[]
for (width,target_type) in i:
text=line[start:start+width]
field=target_type(text)
result_1.append(field)
start+=width
record.append(result_1)
result.append(record)
return result
用意したファイル
python_sample_8_3
入出力結果(Python Shell)
プログラムで、各レコードをタプルのタプルに変換す関数の方が使いやすい理由は、各レコードの各値(日付、緯度、軽度、データ)にインデックスを指定することで、レコードから順に数えることなく一発でアクセスできること。
Python、まだ慣れないせいか、他の言語に比べて一問解くための学習時間が長い。。
0 コメント:
コメントを投稿