如何在Python中重复字符串中的单个字符

时间:2016-07-08 18:36:48

标签: python string

我知道

"123abc" * 2

评估为"123abc123abc",但有一种简单的方法可以重复单个字母N次,例如将"123abc"转换为"112233aabbcc""111222333aaabbbccc"

10 个答案:

答案 0 :(得分:18)

怎么样:

>>> s = '123abc'
>>> n = 3
>>> ''.join([char*n for char in s])
'111222333aaabbbccc'
>>> 

(从生成器表达式更改为列表comp,因为在联接中使用列表comp是faster

答案 1 :(得分:4)

另一个itertools - 问题 - 过度复杂风格的选项repeat()izip()chain()

>>> from itertools import repeat, izip, chain
>>> "".join(chain(*izip(*repeat(s, 2))))
'112233aabbcc'
>>> "".join(chain(*izip(*repeat(s, 3))))
'111222333aaabbbccc'

或者,"我知道正则表达式,我会将它用于一切" -style选项:

>>> import re
>>> n = 2
>>> re.sub(".", lambda x: x.group() * n, s)  # or re.sub('(.)', r'\1' * n, s) - thanks Eduardo
'112233aabbcc'

当然,在实践中不要使用这些解决方案。

答案 2 :(得分:3)

或者另一种方法是使用map

"".join(map(lambda x: x*7, "map"))

答案 3 :(得分:2)

因为我把numpy用于所有事情,所以我们走了:

import numpy as np
n = 4
''.join(np.array(list(st*n)).reshape(n, -1).T.ravel())

答案 4 :(得分:1)

如果你想重复个别字母,你可以用n个字母代替字母,例如

>>> s = 'abcde'
>>> s.replace('b', 'b'*5, 1)
'abbbbbcde'

答案 5 :(得分:1)

@Bahrom的答案可能比我的更清楚,但只是说这个问题有很多解决方案:

>>> s = '123abc'
>>> n = 3
>>> reduce(lambda s0, c: s0 + c*n, s, "")
'111222333aaabbbccc'

请注意,reduce不是python 3中内置的,您必须使用functools.reduce

答案 6 :(得分:1)

或使用正则表达式:

 String sql = "CREATE TABLE coupon40 (id BIGINT PRIMARY KEY, title VARCHAR(25), start_date DATE,"
+ " end_date DATE,"
+ "amount INTEGER,  type varchar(20) NOT NULL CHECK (type IN('Food', 'Electric', 'Traveling', 'Entertainment', 'Sport')), "
+ "message VARCHAR(25), price DOUBLE PRECISION, image VARCHAR(25))";

答案 7 :(得分:1)

另一种方式:

def letter_repeater(n, string):
    word = ''
    for char in list(string):
        word += char * n
    print word

letter_repeater(4, 'monkeys')


mmmmoooonnnnkkkkeeeeyyyyssss

答案 8 :(得分:1)

这是我幼稚的解决方法

text = "123abc"
result = ''
for letters in text:
    result += letters*3

print(result)

输出: 111222333aaabbbccc

答案 9 :(得分:0)

Python:

def  LetterRepeater(times,word) :
    word1=''
    for letters in word:
        word1 += letters * times
    print(word1)

    word=input('Write down the word :   ')
    times=int(input('How many times you want to replicate the letters ?    '))
    LetterRepeater(times,word)