如何将字符串拆分为字符列表,然后按每个字符连接

时间:2013-07-01 21:09:02

标签: python split concatenation

是否可以在每第n个字符处拆分一个Python字符串,然后连接后续字符?

例如,假设我有一个包含'Coffee'的字符串。

我如何拆分并获得这些变化:

C
Co
Cof
Coff
Coffe
Coffee

3 个答案:

答案 0 :(得分:4)

或者,在Python 3.2 +中,itertools.accumulate()

>>> list(itertools.accumulate("Coffee"))
['C', 'Co', 'Cof', 'Coff', 'Coffe', 'Coffee']

值得注意的是,这可能不是一种特别有效的方法,因为它(内部)将使用大量字符串连接,我提供它作为一个感兴趣的问题,而不是最好的方式。

答案 1 :(得分:3)

您可以使用for循环:

>>> s = 'Coffee'

>>> for i in range(len(s)):
...     print s[:i+1]

C
Co
Cof
Coff
Coffe
Coffee

或列表理解:

>>> [s[:i+1] for i in range(len(s))]
['C', 'Co', 'Cof', 'Coff', 'Coffe', 'Coffee']

答案 2 :(得分:0)

既然你已经有了几个有效的解决方案,那么没有人会因为在你脸上扔脑筋急转弯而将我钉死十字架。玩得开心:

map(lambda x:x[::-1],re.findall(r"(?=(.+))","Coffee"[::-1]))[::-1]