Горе тому, кто изучал магию, но забыл, что значит вдохновение. (с)
Здравствуйте!

Мне нужно написать функцию, которая бы возвращала ПАРУ слов: слово --- следующее слово.
Например:
Мне нужно
нужно написать
написать функцию

и т.д.

Вот у меня написана ф-ция, возвращающая слова из файла. Но я не понимаю, как вернуть ПАРУ. Наверное, нужно как-нить через списки или, мб, вложенную функцию?

Код по ссылке на Гитхаб.
github.com/estiei/FirstProj/blob/master/File1


Комментарии
11.08.2016 в 10:12

Я — Господень скоморох, таких и любит Господь
Посмотрите про типы данных, в частности, про кортежи (tuples), они вам помогут.
11.08.2016 в 13:33

"Это известный волшебник с Востока. Он уже имел дело с двумя башнями."(с)
Рекурсия?
11.08.2016 в 23:32

Не так страшен чёрт, как его трезубец в заднем проходе.
split строку по пробелу, выкинуть из массива несоответствующие условию слова с помощью проверки на регулярку, вывести через [i], [i+1]
не?
11.08.2016 в 23:56

Не так страшен чёрт, как его трезубец в заднем проходе.
А, задача про генераторы))
13.08.2016 в 01:58

Горе тому, кто изучал магию, но забыл, что значит вдохновение. (с)
Kot Dymok, спасибо Вам большое за оптимизацию!

Насчёт возвращения пары слов я решила написать функцию, которая использует генератор слов(вложенную функцию)

def couple(filename):
____gener = getword(filename) #генератор для получения слова
____flag = 0 #проверка, является ли слово первым в тексте
____for x in gener:
________nextword = x;#получаем слово
________if flag == 1: #если слово не первое, возвращаем ПАРУ слов
____________yield[word, nextword]
____________word = nextword
________else: #если слово первое в тексте, ничего не возвращаем и ждём второе слово
___________word = nextword
___________flag = 1

Извините за изврат с подчёркиваниями, но дайр упорно форматирует текст по левому краю))
13.08.2016 в 12:34

Я — Господень скоморох, таких и любит Господь
Чудесный Принц, опять же, проще думать более глобальными конструкциями (и это считается более подходящим под python-way). Так, для получения списка кортежей из слов проще воспользоваться чем-то вроде list(zip(words,words[1:])), где words - список всех слов.