ループで二次元配列作成


**キーと値のペアをループして下記のような二次元配列を作成したいです**

[[1,'北海道'][13,'東京'][47,'沖縄']]

* * *

**試したけれどもうまくいかないコード**

[code]

    results = []
    i=0
    for item in data:
        results[i][0].append(data.find('areacode').text) //1回目は1
        results[i][1].append(data.find('prefecture').text) //1回目は北海道
        i+=1
    print results
    
[/code]

**表示結果**

> IndexError: list index out of range

* * *

**Q**  
・ループで二次元配列作成するにはどうすれば良いでしょうか？  
・Pythonでは配列という呼び方はしない？ リスト？  
・「キーと値のペア」でデータを保つ場合は、辞書を使用するのでしょうか？  
・辞書の場合はどう作成？？？




> ・「キーと値のペア」でデータを保つ場合は、辞書を使用するのでしょうか？  
>  ・辞書の場合はどう作成？？？

このような場合辞書を使うのが良いです。  
例の場合1番目がindex、2番目が都道府県名、のように配列の番号に意味を持ってしまっていますが、  
「基本的には」配列の番号に意味を持たせるべきではないと私は考えます。

辞書の場合以下です。

[code]

    results = {}
    
    for item in data:
        results[item.find('areacode').text] = item.find('prefecture').text
    
    print(results)
    
[/code]

もしくはkeyにフィールドの意味を持たせるのならば  
(こうなってくると元のdataそのまま使っても良い気がしますが・・・)

[code]

    results = []
    
    for item in data:
        results.append({'areacode':item.find('areacode').text,
                        'prefecture':item.find('prefecture').text})
    
    print(results)
    
[/code]




dataの中身がよくわからないので、実際に実行して試していませんが、こんな感じでできませんかね。

[code]

    results = []
    i=0
    
    for item in data:
        results.append([item.find('areacode').text, item.find('prefecture').text])
        i+=1
    
    print(results)
    
[/code]

appendの使い方や、配列(リスト)の使い方を間違っているようなので、詳しくはこのあたりを参照ください。  
<http://www.pythonweb.jp/tutorial/list/index6.html>

