我正在尝试按照以下方式做一些事情:
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
)时,它会返回结果,而不是绑定 over 的函数foo
。