flatten_for
- どう書く?org: 九九の表示 (http://ja.doukaku.org/62/)
普通に解けば単純な2重ループだが、1重ループに変換するにはflatten_forを使う。flatten_forは、ネストしながらループする。flatten_forは8月31日の日記を参照。
for i, j in flatten_for(range(1,10), range(1,10)): print i, j, i*j # 出力 1 1 1 1 2 2 1 3 3 ... 1 9 9 2 1 2 2 2 4 2 3 6 ... 9 9 81
一方、zip関数は複数のシーケンスを平行に回す。
for i, j in zip(range(1,10), range(1,10)): print i, j, i*j # 出力 1 1 1 2 2 4 3 3 9 ... 9 9 81
こう考えると、zipと同じカテゴリ上にflatten_forがあっても良い。但し、名前はcombinationの方が良いかもしれない。ちなみに、enumerateもzipに結構近い関数な気がする。