繁体   English   中英

Python:循环:格式化字符串

[英]Python: Loop: formatting string

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

_1__2__3__4_

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

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

(即使打印多行))

编辑:只需一行

你的意思是这样的吗?

 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
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

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_

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

如果您使用的是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? highlightlight = print #print

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM