for文になれるためにいろいろ試す

for文について

PythonJavaScriptのようなインデックスでループさせるような
for文はなく、for in でしかない。
JavaScriptで書くと

var array = new Array('A', 'B', 'C');
for(var i = 0; i < array.length; i++){
    alert(i);//A B Cと出力される
}

っていうのをPythonで同じようにかくと

array = ["A", "B", "C"]
for i in range(len(array)):
    print(array[i])

となんだか不思議な書き方になる。
Pythonの場合は上のようなインデックスでループするような書き方をせず

array = ["A", "B", "C"]
for i in array:
    print(i)

で同じ結果が得られる。
JavaScriptもfor inで書けるので同じように書いてみる。

var array = new Array('A', 'B', 'C');
for(var i in array){
    alert(i);
}

とすると、A B Cと出力されず、0 1 2と出力される。
JavaScriptはArrayも結局は、Objectだからだろうか。
Pythonだとインデックスではなく要素が返ってくるのに。
で、ディクショナリで試してみたら、JavaScriptのようにインデックス(キー)が
返ってきた。

Pythonでインデックスを使いたいとき

ではインデックスを使いたいときにどうするか?
答えは、上に書いた、range()とlen()を使ってやる方法。

要素を評価して、そのインデックスを返すようなループを作りたいときには、
enumerate()をつかって

array = ["A", "B", "C"]
for i, j in enumerate(array):
    print(i, j)

と書くと、iにインデックス、jに要素が入ってくる。

ディクショナリの場合はiteritems()を使うらしい。

慣れるまでにまだまだかかりそうだ。。。