Можно ли разбить строку питона на каждый n-й символ?
Например, предположим, у меня есть строка, содержащая следующее:
'1234567890'
Как мне заставить его выглядеть так:
['12','34','56','78','90']
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))
Я использую это:
list(''.join(s) for s in zip(my_str[::2], my_str[1::2]))
или вы можете использовать любое другое n число вместо 2.
n
2
Вот еще одно решение для более общего случая, когда куски не имеют одинаковую длину.Если длина равна 0, возвращается вся оставшаяся часть.
data - последовательность, которая должна быть разделена;fieldsize - это кортеж со списком длины поля.
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);