2016-11-03 32 views
-1

如果我要运行诸如(“hello”,3)的duplicateString(aString,value),它应该返回“hhheeellllllooo”。这是我所拥有的,但它所做的只是将整个单词返回三次。我不知道如何告诉它将每个元素而不是整个字符串相乘。任何人都可以帮我吗?如何在Python中乘以一个字符串中的单个元素?

def duplicateString(aString,value): 
     return (aString)*(value) 

因此,这是它做什么,如果我使用打招呼,3 ...

duplicateString("hello",3): 
    "hellohellohello" 
+0

您需要遍历原始字符串的字符,并将'char * 3'串联到结果中。 – Barmar

回答

1

您只需

def duplicateString(aString,value): 
    newString = "" 
    for char in aString: 
     newString += char * value 
    return newString 
0

试试这个,可能是帮助你... ...

newstring ='' for a letter in aString: for i in range(value): newstring + =信
回报(newstring)

应该做的伎俩......

+0

这是一个非常低效的算法。每次添加一个字母时,都会创建一个新字符串,首先将所有现有字母复制到一个新字符串中。 –

2

要复制你的代码整个字符串。相反,您需要遍历字符串的单个字符并复制它们。这是做这件事:

def duplicateString(astring, value): 
    return "".join(ch * value for ch in astring) 

[ch * value for ch in astring]hello3['hhh', 'eee', 'lll', 'lll', 'ooo']。摆脱[],以避免在评论中创建Steven建议的中间列表。

join使所需的字符串出来。

+0

这将比天真的+ +方法快得多 – TemporalWolf

+0

您可以删除括号('[]')以避免创建中间列表。 –

相关问题