你如何在Python中编写一个函数,它接受一个字符串并返回一个新的字符串,该字符串是所有字符重复的原始字符串?

时间:2012-03-29 08:58:58

标签: python string function return-value

我正在尝试编写一个返回字符串的函数,该字符串是带有双字符的输入字符串。例如,如果输入为'hello',则该函数应返回'hheelllloo'。我一直在尝试,但我似乎找不到编写函数的方法。任何帮助将不胜感激 - 谢谢。

5 个答案:

答案 0 :(得分:5)

使用简单的生成器:

>>> s = 'hello'
>>> ''.join(c * 2 for c in s)
'hheelllloo'

答案 1 :(得分:4)

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

为什么呢?阅读:Efficient String Concatenation in Python

答案 2 :(得分:3)

s = 'hello'
''.join(c+c for c in s)

# returns 'hheelllloo'

答案 3 :(得分:1)

>>> s = "hello"
>>> "".join(map(str.__add__, s, s))
'hheelllloo'

答案 4 :(得分:1)

def doublechar(s):
    if s:
        return s[0] + s[0] + doublechar(s[1:])
    else:
        return ""