Ознакомьтесь с нашей политикой обработки персональных данных
00:55 

Python, yield, генераторы, итераторы

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

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

и т.д.

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

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

Комментарии
2016-08-11 в 10:12 

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

2016-08-11 в 13:33 

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

2016-08-11 в 23:32 

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

2016-08-11 в 23:56 

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

2016-08-13 в 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

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

2016-08-13 в 12:34 

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

Комментирование для вас недоступно.
Для того, чтобы получить возможность комментировать, авторизуйтесь:
 
РегистрацияЗабыли пароль?

ru_programming

главная