如何在字符串中添加空格重复字符串?

42

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

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

输出

HelloHello

期望输出

Hello Hello

请问有谁能指导我正确的方向吗?

Python版本:2.6.4


第二个“Hello”后面的输出是否有尾随空格? - John Lyon
@jozzas 不是伙计。第二个 hello 后面没有空格。 - misguided
6个回答

61
string = 'Hello There'
print ' '.join([string[:5]] * 2)

伙计,我有一个简单的问题,这个会在第二个字符串后留下尾随空格吗? - misguided
不会的。它会用一个空格将两个“Hello”字符串连接起来。 - John Lyon
@misguided,它不会在第二个字符串后留下尾随空格。 - Vivek Jain

20

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

"Hello world " * 2 

10

这样做:

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

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

因为这样你会得到两个单词之间的空格,并将其放在hello之间

那应该能行!

附言:您不需要#!/bin/python


6
这里提供一种替代方案,使用字符串格式化和重复索引:
print "{0} {0}".format(s[:5])   # prints "Hello Hello" if s is "Hello World"

如果您在运行时想要重复字符串的次数可变,则使用像nuront的回答中所述的str.join更好。如果您事先知道如何重复字符串,那么这将很有效。
使用字符串格式化的优点是,您不仅限于重复操作,虽然您可以轻松地完成它。如果需要,在字符串内部和周围还可以进行其他修饰(并且副本不需要被相同对待)。
 print "[{0!r}] ({0:_^15})".format(s[:5])   # prints "['Hello'] (_____Hello_____)"

该代码打印出字符串的repr,首先是一个用方括号包含的字符串副本,然后是一个用括号包含的字符串副本,通过添加下划线居中并填充到15个字符宽。


非常有趣。特别是第二部分 :) - misguided

3

试试这个:

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

如果您想明确指定尾随空格。
在您的示例中,您可以执行以下操作:
print str[:6] * 2

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

谢谢你的提示,伙计。我会记住的。另外,你的第一个解决方案在第二次打印“Hello”后会留下空格吗? - misguided
是的,它会。使用Neuront解决方案,这是更好的选择。 - rajpy

1
import re
str = 'Hello There'
m = re.match("(\w+\ )",str)
m.group(1) * 2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接