2013-09-09 1 views
0

Как разбить строку на 2, например, «строка» будет разбита на группы «st», «ri», «ng». Я проверяю документ, группа из itertools, кажется, то, что мне нужно. Однако есть ли способ сделать это, просто не используя itertools? спасибоКак использовать группу Python

+1

Также http://stackoverflow.com/questions/434287/what-is-the-most-pythonic-way-to-iterate-over-a-list-in-chunks?lq=1 –

+1

См. [Это ответ] (http://stackoverflow.com/questions/434287/what-is-the-most-pythonic-way-to-iterate-over-a-list-in-chunks/434328#434328) для не-itertools версия. –

+0

Это фактический ответ: http://stackoverflow.com/questions/12328108/how-can-i-split-a-string-in-python –

ответ

2

Вы можете сделать это без itertools, но это будет медленнее. Если это не обучающейся excersize, использовать «окунь» рецепт от itertools page:

def grouper(iterable, n, fillvalue=None): 
    "Collect data into fixed-length chunks or blocks" 
    # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx 
    args = [iter(iterable)] * n 
    return izip_longest(fillvalue=fillvalue, *args) 
+1

Обратите внимание, что 'izip_longest' требует Python 2.6+ –

+0

Я предпочитаю [@ nosklo's ответ] (http://stackoverflow.com/a/434328/790387) из связанного вопроса, поскольку он не имеет ограничений по версии –

+0

В зависимости от Python 2.6, выпущенного в 2008 году, вряд ли серьезное ограничение версии. – user4815162342

1
s='your input string' 
ans=[ ] 
i=0 
while i < len(s): 
    ans.append(s[ i:i+2 ]) 
    i+=2 
print ans 
0

Если вы просто хотите, чтобы сделать две группы символов без itertools, вы можете использовать это:

s = 'string' 
groups = [''.join(g) for g in zip(s[:-1:2], s[1::2])] 

Обратите внимание, что это работает только для строк с четной длиной.

 Смежные вопросы

  • Нет связанных вопросов^_^