如何在Python中编写一个函数,该函数接受一个字符串并返回一个新字符串,该字符串是所有字符重复的原始字符串?
我想写一个函数,返回一个字符串是双字符输入的字符串。例如,如果输入是'hello',那么函数应该返回'hheelllloo'。我一直在尝试,但我似乎无法找到一种方法来编写函数。任何帮助将不胜感激 - 谢谢。如何在Python中编写一个函数,该函数接受一个字符串并返回一个新字符串,该字符串是所有字符重复的原始字符串?
s = 'hello'
''.join(c+c for c in s)
# returns 'hheelllloo'
用一个简单的发生器:
>>> s = 'hello'
>>> ''.join(c * 2 for c in s)
'hheelllloo'
我认为,这不是一个列表理解,而是一个生成器表达式。 – moooeeeep 2012-03-29 09:08:06
@moooeeeep同意。 – 2012-03-29 09:09:33
def repeatChars(text, numOfRepeat):
ans = ''
for c in text:
ans += c * numOfRepeat
return ans
要使用:
repeatChars( '你好',2)
输出: 'hheelllloo'
由于字符串是不可变的,所以并不是一个好主意如在repeatChars方法中看到的那样将它们作为一起使用。没关系,如果你操纵的文本长度很短,比如'hello',但是如果你传递'superfragilisticexpialidocious'(或更长的字符串)......你明白了。因此,作为替代方案,我已将之前的代码与@Roman Bodnarchuk的代码合并。
替代方法:
def repeatChars(text, numOfRepeat):
return ''.join([c * numOfRepeat for c in text])
>>> s = "hello"
>>> "".join(map(str.__add__, s, s))
'hheelllloo'
def doublechar(s):
if s:
return s[0] + s[0] + doublechar(s[1:])
else:
return ""
很好的使用recursin,以及为什么递归是浪费在Python中用于现实世界的问题。为了学习思考它是如何工作的,它确实适合。 – jsbueno 2012-03-29 13:12:53
你能分享你所到目前为止已经试过?我们可以尝试纠正这一点。 – Shoban 2012-03-29 09:00:35