Ищем замену PHP str_split () - PullRequest
1 голос
/ 19 июля 2010

Допустим, у меня есть этот маленький кусочек кода:

<?php 
$tmp = str_split('hello world!',2);
// $tmp will now be: array('he','ll','o ','wo','rl','d!');
foreach($tmp AS &$a) {
  // some processing
}
unset($tmp);
?>

Как я могу сделать это в Python v2.7?

Я думал, что это сделает:

the_string = 'hello world!'
tmp = the_string.split('',2)
for a in tmp:
  # some processing
del tmp

но возвращает ошибку «пустой разделитель».

Есть мысли по этому поводу?

Ответы [ 4 ]

6 голосов
/ 19 июля 2010
for i in range(0, len(the_string), 2):
    print(the_string[i:i+2])
2 голосов
/ 19 июля 2010

tmp = the_string[::2] дает копию the_string с каждым вторым элементом.... [:: 1] будет возвращать копию с каждым элементом, ... [:: 3] будет давать каждый третий элемент и т. Д.

Обратите внимание, что это фрагмент, а полная форма - список[start: stop: step], хотя любой из этих трех может быть опущен (также как и шаг может быть опущен, поскольку по умолчанию он равен 1).

0 голосов
/ 19 июля 2010
def str_split_like_php(s, n):
    """Split `s` into chunks `n` chars long."""
    ret = []
    for i in range(0, len(s), n):
        ret.append(s[i:i+n])
    return ret
0 голосов
/ 19 июля 2010
In [24]: s = 'hello, world'

In [25]: tmp = [''.join(t) for t in zip(s[::2], s[1::2])]

In [26]: print tmp
['he', 'll', 'o,', ' w', 'or', 'ld']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...