Задать вопрос
@pcdesign

Как разбить текст по 3 слова слова?

Просто text.split() разобьет по 1 слову.

>>> 
>>> text = 'слово1 слово2 слово3 слово4 слово5 слово6 слово7 слово8 слово9'
>>> text.split()
['слово1', 'слово2', 'слово3', 'слово4', 'слово5', 'слово6', 'слово7', 'слово8', 'слово9']
>>>

Как получить:
['слово1 слово2 слово3', 'слово4 слово5 слово6' и т.д.]

?
  • Вопрос задан
  • 267 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 3
@x_dmitry_x
import re
res = re.findall("[\w\d]+\s[\w\d]+\s[\w\d]+", text)
print(res)
Ответ написан
Комментировать
MaxLevs
@MaxLevs
text = "слово1 слово2 слово3 слово4 слово5 слово6 слово7 слово8 слово9"
text = text.split()
text = [' '.join(text[x:x+3]) for x in range(0, len(text), 3)]

Разбивает по 3 слова. Если группа из 3 слов не может быть составлена - отбрасывается.
Демонстрация
5c4046d6a1e46864489023.png
Ответ написан
Комментировать
de-iure
@de-iure
just a crazy lawyer
длиннее, но проще для понимания))), можно хоть на 3, хоть на 4 разбивать... если остаток меньше 3 не нужен, последний if нужно удалить.

text = 'слово1 слово2 слово3 слово4 слово5 слово6 слово7 слово8 слово9 слово10'

def func(text, x):
    new_list = []
    text_list = text.split()
    word = ''
    n = 0
    while len(text_list):
        word += text_list.pop(0) + ' '
        n += 1
        if n >= x:
            new_list.append(word.rstrip())
            word = ''
            n = 0
    if word != '':
        new_list.append(word.rstrip())
    return new_list

print(func(text, 3))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы