| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > itertools.takewhile() |
| Автор: setq 18.5.2006, 13:56 | ||
| Функция takewhile из модуля itertools отбирает несколько первых элементов "последовательности", которые удовлетворяют заданному условию. Но она также "выкидывает" элемент, который не подошёл по условию. Вот, ломаю голову над тем как это обойти и оставлять этот элемент. Пример:
|
| Автор: slav0nic 18.5.2006, 16:47 | ||||
хм, странно, эта ф-ция аналогична
если сделать
результат: [0, 1, 2, 3, 4] [6, 7, 8, 9] [] [] если заменить a=xrange(10) [0, 1, 2, 3, 4] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] видать проблема в итераторах (редко их юзаю=) ) нихрена не понимаю блин) |
| Автор: slav0nic 19.5.2006, 14:41 | ||
по идее в генераторе до break срабатывает итератор, после только после чего вроисходит break и 5 просто теряется)
а если потом брык, то 0 потерялся бы вроде всё так |
| Автор: setq 19.5.2006, 17:24 |
| Чего? Ладно |
| Автор: slav0nic 19.5.2006, 17:52 | ||
есть идея не юзать итераторы;) а написать по простому
самое тупое) |
| Автор: setq 19.5.2006, 18:44 |
| С радостью бы. Но мои "итераторы" по 20 миллионов длиной. Их за раз в память не поднять. |