我不知道如何表达这一点。我想打印:
_1__2__3__4_
使用"_%s_"
作为其子字符串。在格式化子字符串时如何获取主字符串? (作为捷径:
for x in range(1,5):
print "_%s_" % (x)
(即使这会打印多行))
编辑:只需一行
答案 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