2016-01-24 115 views
1

我想将一个字符串分解每n焦炭,打印必须是这样的:Python的字符串分割每n字符

MISSISSIPPI => MI*SS*IS*SI*PP*I 

我做了一个程序,但我不知道如何改变,*。下面是代码:

n=input('chunk size') 
s=input('Add word') 
import re 
r=[s[i:i+n] for i in range(0, len(s), n)] 
print (r) 

这是输出:

['MI', 'SS', 'IS', 'SI', 'PP', 'I'] 

,但我希望它是这样的:

MI*SS*IS*SI*PP*I 
+0

你确实想在输出中括号? – TigerhawkT3

回答

2

您可以使用str.join()此:

>>> '*'.join(r) 
'MI*SS*IS*SI*PP*I' 

这是做什么迭代在r的字符串中,并加入它们,插入'*'

1

解压,然后使用自定义分隔符:

>>> print(*r, sep='*') 
MI*SS*IS*SI*PI 

如果你想在输出中,使用字符串而不是格式化的支架。

>>> print('[{}]'.format('*'.join(r))) 
[MI*SS*IS*SI*PI] 
2

你也可以使用re模块:

import re 

r = '*'.join(re.findall('..|.$', s)) 

输出:

'MI*SS*IS*SI*PP*I' 
2

嗯,你是在点,你只需要1个以上行添加:

​​

那么你的专业gram变成

n=input('chunk size') 
s=input('Add word') 
import re 
r=[s[i:i+n] for i in range(0,len(s),n)] 
r = '*'.join(r) 
print (r) 
0

我们可以使用字符串数据结构的拆分和连接方法。

x = 'MI*SS*IS*SI*PP*I' xlist = x.split('*') '*'.join(xlist)