2011-02-15 4 views
4

つを印刷する地元の人々()を使用して書式設定文字列でlocals()されています。しかし、これは辞書の値で行うことができないPythonの:辞書値Pythonで素敵なツールの

>>> st="asdasd" 
>>> print "%(st)s" % locals() 
asdasd 

>>> d={1:2, 3:4} 
>>> print "%(d[1])s" % locals() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
KeyError: 'd[1]' 

どのようにすればいいですか?

+0

で動作します。ケアを明確にする? –

+1

%(key)s "%d'についてはどうですか?このように文字列キーのみを使用できることに注意してください。 – ulidtko

+0

Eli、それは文法的な砂糖です。なぜなら、 'print'という名前は、%s "%user_name"は読みにくいですが、 'print 'の名前と同じである:%(user_name)s"%locals() 。また、リストの引数順に混乱を避けるのにも役立ちます。 –

答えて

6
>>> d={1:2, 3:4} 
>>> print '{0[1]}'.format(d) 
2 
>>> print '{0[d][1]}'.format(locals()) 
2 
>>> print '{[d][1]}'.format(locals()) 
2 
>>> 

最後のものは唯一の私はlocals` `とシンタックスシュガーのアナロジーを取得するかわからない2.7

+2

そして、それらはすべて2.6 –