私はこれに沿って何かをしようとしています:
string = "this is my %s string" % (foo)
list = ["first", "second", "g", "last"]
for entry in list:
foo = entry
print(string)
foo は文字列の前に宣言する必要があるようですが、文字列は for ループの前に評価されます。私が見逃しているPythonicのものはありますか?
私はこれに沿って何かをしようとしています:
string = "this is my %s string" % (foo)
list = ["first", "second", "g", "last"]
for entry in list:
foo = entry
print(string)
foo は文字列の前に宣言する必要があるようですが、文字列は for ループの前に評価されます。私が見逃しているPythonicのものはありますか?
そのはず:
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
は、ビルトインをシャドウするため、悪い習慣であることに注意してください。
fmt_str ='out {}'
for val in ["a", "b", 1]:
print fmt_str.format(val)
プリント:
out a
out b
out 1
ループ内で文字列のフォーマットを行う必要があります。%
文字列を (古いスタイルまたは新しいスタイルを使用して) フォーマットすると、format
をバインドする関数ではなく、結果が返されますfoo
。