5.15.2011

Loop without an iterator variable in Python

Python: 変数の不要な繰り返し処理

たとえば文字 x を n 回 print するとき、以下のように書くと「i」が不使用の変数(Unused variable)として警告が出てしまう。

for i in range(n):
  print x

ループ変数を「_」にするのが最もシンプルなアイデアのようだ。

for _ in range(n):
  print x

ただし、対話型プロンプトにおいて、「_」は直前の処理結果を返す命令として定義されている。

>>> 1+2+3
6
>>> _
6

ループ変数とはいえ名前空間が上書きされてしまうため、マナーとして変数名に「_」を使うのは避けるべきということだ。

>>> for _ in range(3): pass

>>> _
2
>>> 1+2+3
6
>>> _
2

結局、使わない変数を定義しても『気にしない』のが現時点の最善らしい。

参考:
・Is it possible to implement a Python for range loop without an iterator variable?
http://stackoverflow.com/questions/818828/is-it-possible-to-implement-a-python-for-range-loop-without-an-iterator-variable

0 件のコメント:

コメントを投稿