

forループの中で数字に対応した名前のリストを生成したいです。  
例えば

[code]

    for i in range(10):
        for j in range(20):
            list_i_j=[i,j]
    
[/code]

`list_i_j` に対応する数字が入るようなものです。それに代わる代替案でも大丈夫です。

よろしくお願いします。


CC BY-SA 3.0
2015-11-13T05:19:26.223
18780
2015-11-13T07:56:21.617
2015-11-13T05:21:12.480
13226
question
python
pythonでforループ中に自動でリストの名前を変えたい


こういう事でしょうか？

[code]

    for i in range(10):
      for j in range(20):
        exec("list_" + str(i) + "_" + str(j) + "= [i, j]")
    
    # Check the existence of variables
    # print globals()
    
[/code]


CC BY-SA 3.0
2015-11-13T05:34:06.643
18782
2015-11-13T05:34:06.643
18780
answer


文字列処理で変数名を組み立てる事が必要な場面は、あまり無いと思います。  
配列や連想配列が使えないshスクリプトなどでは使うかもしれませんが。

質問の例ですと `i` も `j` も連続しているのでリストのリスト（のリスト）を使いたいです。

[code]

    a_list = []
    for i in range(10):
        child_list = []
        a_list.append(child_list)
        for j in range(20):
            child_list.append([i, j])
    
    # 内包表記バージョン
    a_list = [[[i, j] for j in range(20)] for i in range(10)]
    
    # >>> a_list[1][2]
    # [1, 2]
    
[/code]

リストが適さず、`"1_2"` の様な文字列から値を引きたい事情があるのでしたら、辞書を使うのがよさそうです。

[code]

    a_dic = {}
    for i in range(10):
        for j in range(20):
            a_dic[str(i) + "_" + str(j)] = [i,j]
    
    # 内包表記バージョン
    a_dic = {str(i) + "_" + str(j) : [i, j] for i in range(10) for j in range(20)}
    
    # >>> a_dic["1_2"]
    # [1, 2]
    
[/code]


CC BY-SA 3.0
2015-11-13T07:21:05.880
18786
2015-11-13T07:56:21.617
2015-11-13T07:56:21.617
3054
3054
18780
answer