字符串中重复的字符

新手上路,请多包涵

你能告诉我如何使用 python 中的 for 循环重复字符串中的每个字符吗?我的进展是:

 def double(str):
    for i in range(len(str)):
        return i * 2

这只返回重复字符串的第一个字母

原文由 Martin Spasov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 417
2 个回答

我相信您想按顺序将输入字符串的每个字符打印两次。您尝试的问题是您使用了 return 。您只想返回最终字符串,而不仅仅是循环内一个字符的一次重复。所以你希望你的 return 语句以某种方式在 for 循环之外。

由于这听起来像是一道家庭作业题,因此在继续下面的内容之前,请尝试弄清楚如何在上面做到这一点。

还是卡住了?

按顺序打印字符串中的每个字符两次:

 def double(str):
    outstr = ''
    for character in str:
        outstr = outstr + character + character
    return outstr

不使用 for 循环:

 def double(str):
    return ''.join([c+c for c in str])

原文由 dactylroot 发布,翻译遵循 CC BY-SA 4.0 许可协议

一般变体,返回字符串,将原始字符串中的每个字符重复 n 次:

 def multichar(text, n):
    return ''.join([x * n for x in text])

解释

''.join(...) - 将 (…) 中的所有内容粘合在一起, 没有 空格,即 ''.join('a', 'b', 'c') 将返回 'abc'

' '.join('a', 'b', 'c') 将返回 'a b c'

'-'.join('a', 'b', 'c') 将返回 'a-b-c'

…你明白了:)

[x * n ...] - repeats x n times, ie 'a' * 3 gives 'aaa' .

[... for x in text] - 正常 for 循环 - 遍历 text 中的每个元素。

代码最后一行的作用用 简单的英语 表示:

Glue without spaces every element in the list, generated by repeating x n times for every x in text .

示例

 >>> multichar('Hello', 2)

将返回:

 >>> 'HHeelllloo'

原文由 Denis Rasulev 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题