pythonでオブジェクト名を文字列の結合で作るにはどうすればよいか

[code]

    for (i, num) in enumerate("one", "two", "three"):
        mozi + num =  i
    
[/code]

みたいな感じで、オブジェクト名をmozioneの様にしたいです




文字列をコードとして実行することはセキリティ的に推奨されませんが`exec`を使って以下のようにできます．

[code]

    mozi = "mozi"
    for (i, num) in enumerate(["one", "two", "three"]):
         exec("{0}{1} = i".format(mozi,num))
    
    print(mozione)   # ==> 0
    print(mozitwo)   # ==> 1
    print(mozithree) # ==> 2
    
[/code]

他の方がご回答されているように名前空間を直接操作する方法もありますが恐らくそれも推奨されないと思います．
例えば実現したいことが文字列から数値へのマップを保持したいということなら辞書を使うなど他の方法を考えたほうがよいかと思います．




文字列をコードとして実行することはセキリティ的に推奨されませんが`exec`を使って以下のようにできます．

[code]

    mozi = "mozi"
    for (i, num) in enumerate(["one", "two", "three"]):
         exec("{0}{1} = i".format(mozi,num))
    
    print(mozione)   # ==> 0
    print(mozitwo)   # ==> 1
    print(mozithree) # ==> 2
    
[/code]

他の方がご回答されているように名前空間を直接操作する方法もありますが恐らくそれも推奨されないと思います．
例えば実現したいことが文字列から数値へのマップを保持したいということなら辞書を使うなど他の方法を考えたほうがよいかと思います．

