for文でrangeをインデックスにして使うときにちょっとハマったのでメモ。(Python 2.5.5) ハマってたこと リストを逆順にするreverse()メソッドを使おうとして、 a = range(10) a.reverse() #=> [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] となるのに、 a = range(10).reverse() #=> None となってしまう。そのため、for文で使いにくくて困っていた。 解決方法 結局、やり方としては3種類ぐらいあるみたい。 rangeの第3引数に-1を指定 reversed(list)を使う スライスを使う rangeの第3引数に-1を指定 rangeの第3引数は生成する配列の数値の間隔。 ただし、range(10)の逆順を得ようとすると、第1,2引数もそれぞれ1引かないといけないので使いづらい。 range(10
2つのdatetimeオブジェクトがあって、その期間の1日ごとに処理を行いたいケースがあったので、調べたところ以下のような感じに落ち着いた from datetime import datetime, timedelta start = datetime.strptime('201201', '%Y%m') end = datetime.strptime('201202', '%Y%m') def daterange(start_date, end_date): for n in range((end_date - start_date).days): yield start_date + timedelta(n) for i in daterange(start, end): # 処理 print i # => 2012-01-01 00:00:00 # => 2012-01-02 00
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く