Разделить строку на каждый n-й символ? - PullRequest
318 голосов
/ 28 февраля 2012

Можно ли разбить строку питона на каждый n-й символ?

Например, предположим, у меня есть строка, содержащая следующее:

'1234567890'

Как мне заставить его выглядеть так:

['12','34','56','78','90']

Ответы [ 23 ]

0 голосов
/ 12 декабря 2017
def split(s, n):
  """
  Split string every nth character

  Parameters
  ----------
  s: string
  n: value of nth
  """
  new_list = []
  for i in range(0, len(s), n):
    new_list.append(s[i:i+n])
  return new_list

print(split('1234567890', 2))
0 голосов
/ 19 октября 2017

Я использую это:

list(''.join(s) for s in zip(my_str[::2], my_str[1::2]))

или вы можете использовать любое другое n число вместо 2.

0 голосов
/ 04 августа 2017

Вот еще одно решение для более общего случая, когда куски не имеют одинаковую длину.Если длина равна 0, возвращается вся оставшаяся часть.

data - последовательность, которая должна быть разделена;fieldsize - это кортеж со списком длины поля.

def fieldsplit(data=None, fieldsize=()):
    tmpl=[];
    for pp in fieldsize:
        if(pp>0):
            tmpl.append(line[:pp]);
            line=line[pp:];
        else:
            tmpl.append(line);
            break;
    return tuple(tmpl);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...