24016

[code]

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

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


CC BY-SA 3.0
2016-04-14T11:31:58.217
24014
2016-04-14T13:14:26.157
10111
question
python
pythonでオブジェクト名を文字列の結合で作るにはどうすればよいか


文字列をコードとして実行することはセキリティ的に推奨されませんが`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]

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


CC BY-SA 3.0
2016-04-14T11:53:03.690
24016
2016-04-14T13:14:26.157
2016-04-14T13:14:26.157
14418
14418
24014
answer


止めた方がよいですが、方法は色々あります。

[code]

    >>> globals()['foo'] = 1
    >>> foo
    1
    
[/code]


CC BY-SA 3.0
2016-04-14T11:55:42.773
24017
2016-04-14T11:55:42.773
806
24014
answer