Pythonでの繰り返し操作
別にネットを探せばどこにでもある情報なのであまり価値はないのですが、こうして至る所にPythonがイイって書いてあれば、Pythonが日本でもっと普及するかなと思い、いくつか便利な点をまとめておきます。

ある変数の値の範囲を調べる時、Pythonでは、
In [4]: g = 2
In [5]: 1 < g < 5
Out[5]: True
のようにできます。書くときのストレスがないです。

In [1]: l = [1,2,3,4]
In [2]: r = [2,2,2,2]
とすると、
In [9]: [ x*y for x in l for y in r]
Out[9]: [2, 2, 2, 2, 4, 4, 4, 4, 6, 6, 6, 6, 8, 8, 8, 8]
これは、lとrのループを総当たりでまわすことに相当します。

In [10]: [ x*y for x,y in zip(l,r)]
Out[10]: [2, 4, 6, 8]

こう書くと、2つのリストを対応づけてくれます。

In [12]: for (i,x) in enumerate(r):
....: print i,x
0 2
1 2
2 2
3 2

とすると、リストの要素に番号をふってくれます。iteraterを利用した表記は便利だけど、操作のためにインデックスが欲しいときに便利です。引数はsetでも大丈夫。

ちなみに、リスト内包表記は、英語ではlist comprehension
こういう表記の揺らぎを考慮した検索エンジンそろそろ出ても良さそうな気が。
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

【2008/07/01 13:34】 | Python | トラックバック(0) | コメント(0) | page top↑
<<回帰係数の一様性の検定 | ホーム | MacOS10.5.3にscipy0.6.0をインストールする>>
コメント
コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
→http://tanopy.blog79.fc2.com/tb.php/28-ff8ce365
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |