Как разбить строку на массив из шести символов? - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть строка:

doc = 'a3fprma3j4kfa3bedv'

И я хочу создать массив:

['a3fprm', 'a3j4kf', 'a3bedv']

Каждые шесть символов будут строкой в ​​массиве, когда я пытаюсь:

rer = [doc[i] for i in range(len(doc))]
god = []
for i in range(0, len(doc) - 6 + 1):
    god.append(doc[i:i +6])

Результат не тот, который я хочу Как мне написать код для такой ситуации?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Попробуйте что-то вроде ниже.Единственное, что строка должна быть кратна 6, чтобы отобразить значение в списке.Например, если вы добавите еще 5 символов в строку, выходные данные будут такими же, как последние 5 символов, будут игнорироваться.

Отличие от вашего кода заключается в добавлении третьего параметра в функцию range()range(6, len(doc) + 1, 6).Этот третий параметр указывает циклу for проходить строку с интервалами 6.

doc = 'a3fprma3j4kfa3bedv'

docArr = []

for i in range(6, len(doc) + 1, 6):
    docArr.append(doc[i-6:i])

print(docArr)

Вывод:

['a3fprm', 'a3j4kf', 'a3bedv']
0 голосов
/ 06 декабря 2018

Используйте range(0, len(doc), 6) для генерации последовательности (с шагом 6):

[doc[i:i+6] for i in range(0, len(doc), 6)]
# ['a3fprm', 'a3j4kf', 'a3bedv']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...