Python:循环:格式化字符串

时间:2014-08-25 20:09:42

标签: python

我不知道如何表达这一点。我想打印:

_1__2__3__4_

使用"_%s_"作为其子字符串。在格式化子字符串时如何获取主字符串? (作为捷径:

for x in range(1,5):
    print "_%s_" % (x)

(即使这会打印多行))

编辑:只需一行

4 个答案:

答案 0 :(得分:8)

你的意思是这样吗?

 my_string = "".join(["_%d_" % i for i in xrange(1,5)])

根据请求创建子字符串列表,然后使用空字符串作为分隔符连接列表中的项目(请参阅str.join()文档)。

或者你可以通过一个带+=运算符的循环添加一个字符串,尽管它更慢,效率更低:

s = ""
for x in range(1,5):
    s += "_%d_" % x
print s

答案 1 :(得分:2)

print("_" + "__".join(map(str, xrange(1,5)))) +"_"
_1__2__3__4_




In [9]: timeit ("_" + "__".join(map(str,xrange(1,5)))) +"_"

1000000 loops, best of 3: 1.38 µs per loop


In [10]: timeit "".join(["_%d_" % i for i in xrange(1,5)])
100000 loops, best of 3: 3.19 µs per loop

答案 2 :(得分:1)

Python 3:

print("_{}_".format("__".join(map(str,range(1,5)))))
_1__2__3__4_

Python 2:

print "_{0}_".format("__".join(map(str,range(1,5))))
_1__2__3__4_

答案 3 :(得分:1)

如果你愿意,你可以保持自己的风格。

如果您使用的是python 2.7:

from __future__ import print_function
for x in range(1,5):
    print("_%s_" % (x), sep = '', end = '')
print()

对于python 3.x,不需要导入。

python doc:https://docs.python.org/2.7/library/functions.html?highlight=print#print