2012-11-09 188 views

回答

7
>>> s = 'akhfkahgdsds' 
>>> range(0, len(s), 2) # gives you the start indexes of your substrings 
[0, 2, 4, 6, 8, 10] 
>>> [s[i:i+2] for i in range(0, len(s), 2)] # gives you the substrings 
['ak', 'hf', 'ka', 'hg', 'ds', 'ds'] 
>>> ' '.join(s[i:i+2] for i in range(0, len(s), 2)) # join the substrings with spaces between them 
'ak hf ka hg ds ds' 
+0

其实,这个命令不起作用,我正在使用python 2.7.3 – Leo

+0

@ user1813163我已经在Python 2.7和3.3上测试了它。你确定你粘贴正确吗?你遇到了什么错误? –

0
def isection(itr, size): 
    while itr: 
     yield itr[:size] 
     itr = itr[size:] 

' '.join(isection('akhfkahgdsds', 2)) 
0

我真的不认为这是去这里的路,但我觉得这个答案是一种乐趣呢。如果字符串的长度总是甚至,你可以用iter起到巧妙的技巧 - 如果是奇数,则最后一个字符将被截断:

s = '11223344' 
i_s = iter(s) 
' '.join(x+next(i_s) for x in i_s) 

当然,你可以随时填充它:

i_s = iter(s+len(s)%2*' ') 
+0

非常感谢,它帮助了我) – Leo

0

你可以试试这个简单的代码:

try: 
    for i in range(0,len(s)+1,2): 
     print s[i]+s[i+1], 
except IndexError: 
    pass