42

我正在尝试在 Python 中重复字符串。

#!/bin/python
str = 'Hello There'
print str[:5]*2

输出

你好你好

所需输出

你好你好

谁能指出我正确的方向?

Python版本:2.6.4

4

6 回答 6

59
string = 'Hello There'
print ' '.join([string[:5]] * 2)
于 2013-06-19T05:09:06.980 回答
21

如果您只想重复任何字符串

"Hello world " * 2 
于 2017-05-07T06:26:08.533 回答
11

做这个:

str = 'Hello There'
print str[:6]*2

如果可以的话,它将在第二个“Hello”之后添加一个空格。此外,就像 rajpy 所说,您不应该将str其用作变量,因为它是 python 中的关键字。

因为那样你就得到了两个词之间的空格并将它放在你好之间

那应该工作!

PS你不需要#!/bin/python

于 2013-06-19T05:09:14.910 回答
6

这是另一种解决方案,使用带有重复索引的字符串格式:

print "{0} {0}".format(s[:5])   # prints "Hello Hello" if s is "Hello World"

如果您提前确切知道要如何重复您的字符串,这将很有效。如果您希望重复次数在运行时可变,str.join那么在 nuront 的答案中使用 as 可能会更好。

使用字符串格式的一个优点是您不仅限于重复,尽管您可以很容易地做到这一点。如果需要,您还可以在字符串中和字符串周围进行其他装饰(并且副本不需要被同等对待):

 print "[{0!r}] ({0:_^15})".format(s[:5])   # prints "['Hello'] (_____Hello_____)"

这将在方括号内打印repr字符串的第一个副本,然后在括号中打印第二个副本,居中并用下划线填充,宽度为 15 个字符。

于 2013-06-19T06:02:56.637 回答
3

尝试这个:

print (str[:5] + ' ') * 2

如果要显式指定尾随空格。

在您的示例中,您可以执行以下操作:

print str[:6] * 2

请不要在程序中使用内置类型(str、int 等)作为变量,它会影响其实际含义。

于 2013-06-19T05:14:12.963 回答
1
import re
str = 'Hello There'
m = re.match("(\w+\ )",str)
m.group(1) * 2
于 2013-06-19T05:49:54.383 回答