69226


こんにちは。この度は、ループ処理でリストを生み出し、それに名前をつけるというコードが書きたくて質問しました。  
具体的にはこんな感じで書きたいです。

....  
任意に入力した数字をリストに格納し続けます。q１を入力すると格納は終わります。（ここまでは自力で書けています）

qを押された後に、今のリストはリスト１と名づけられます。そしてさっきと同じように入力を求められ、…q１を押すと今のリストはリスト２と名づけられます。  
このようなループで任意の数nまで、リストnが作られます。q２を入力すると、リストを作るループそのものが終了します。  
....

難儀なのは、ループのたびにリストの名前を変えるという点です。よろしくお願いします。


CC BY-SA 4.0
2020-08-04T00:12:29.007
69223
2020-08-04T02:31:49.833
41334
question
python
ループ処理で名前の異なるリストを生み出していきたい


「名前の付いたリスト」は[辞書型](https://docs.python.org/ja/3/tutorial/datastructures.html#dictionaries)で表現するのが一般的な方法です。  
リスト1, リスト2などの単純な連番であれば、辞書型の代わりにリストのリストを作っても良いですが、回答からは割愛します。

**サンプルコード:**

[code]

    list = []
    dict = {}
    while True:
        s = input()
        if s == "q1":
            key = "リスト{}".format(len(dict) + 1)
            dict[key] = list
            list = []
        elif s == "q2":
            break
        else:
            list.append(int(s))
    
    print(dict)
    
[/code]

**出力例:** ("> "から始まる表記はキーボードによる入力を表す)

[code]

    > 1
    > 5
    > q1
    > 2
    > 4
    > 3
    > q1
    > q2
    {'リスト1': [1, 5], 'リスト2': [2, 4, 3]}
    
[/code]


CC BY-SA 4.0
2020-08-04T02:31:49.833
69226
2020-08-04T02:31:49.833
9820
69223
answer