0

私はこれに沿って何かをしようとしています:

string = "this is my %s string" % (foo)
list = ["first", "second", "g", "last"]     
for entry in list:
    foo = entry
    print(string)

foo は文字列の前に宣言する必要があるようですが、文字列は for ループの前に評価されます。私が見逃しているPythonicのものはありますか?

4

2 に答える 2

3

そのはず:

string = "this is my %s string"
l = ["first", "second", "g", "last"]     
for entry in l:
    print(string % entry)

プリント:

this is my first string
this is my second string
this is my g string
this is my last string

変数を呼び出すことlistは、ビルトインをシャドウするため、悪い習慣であることに注意してください。

于 2013-10-01T22:22:21.937 に答える
1
fmt_str ='out {}'

for val in ["a", "b", 1]:
    print fmt_str.format(val)

プリント:

out a
out b
out 1

ループで文字列のフォーマットを行う必要があります。%文字列を (古いスタイルまたは新しいスタイルを使用して) フォーマットすると、formatをバインドする関数ではなく、結果が返されますfoo

新しいスタイルのドキュメント

于 2013-10-01T22:23:24.533 に答える