1

だから私はテキストの文字列を持っているとしましょう:

"""Blah blah blah %s. And also blah blah blah %s. Oh! One more thing, blah blah blah %s!!!"""

そして値のリスト:

values = ['foo', 'bar', 'baz', ...]

現在、いくつかの変数 (私の場合は 7 のようなものですが、それを 3 または 4 に減らすことができるかもしれません) があり、それらすべてをここに挿入したいのですが、異なる値につながる可能性のある 5 つの条件があります。変数(およびいくつかの入力)の代わりに、私がやりたいことは、リストを取得してポップインすることです。通常、私はこれを行います:

"""Blah blah blah %s. And also blah blah blah %s. Oh! One more thing, blah blah blah %s!!!""" % (VariableA, VariableB, VariableC)

比較的簡単な方法で、代わりに値のリストを使用することは可能ですか?

複数の if 条件で複数の変数を設定するよりも、文字列の書式設定のためのより Pythonic な方法を考え出そうとしています。

4

2 に答える 2

8

を使用.format()すると、値が関数の引数になるようにリストを拡張できます。

>>> vars = [1, 2, 3, 4]
>>> print '{} {} {} {}'.format(*vars)
1 2 3 4

@TryPyPy が指摘したように、古いスタイルの文字列フォーマットを使用した同等の構文は次のようになります。

>>> vars = [1, 2, 3, 4]
>>> print '%s %s %s %s' % tuple(vars)
1 2 3 4
于 2012-05-30T20:53:55.443 に答える
0

また、python テンプレートについても忘れないでください。

d = {'foo':"F.O.O", 'bar':'BAR'}
Template('$foo and $bar').substitute(d)

与えます:

'F.O.O and BAR'
于 2012-05-30T21:02:41.737 に答える