Содержание
- 2. Во многих современных языках программирования используют такие сущности как итераторы. Основное их назначение – это упрощение
- 3. Определения Итерируемый объект – это объект, который позволяет поочередно обойти свои элементы и может быть преобразован
- 4. пример Когда вы создаёте список (list) вы можете считывать его элементы по одному — это называется
- 5. for Основное место использования итераторов – это цикл for. Если вы перебираете элементы в некотором списке
- 6. Итерирумые объекты достаточно удобны потому что вы можете считывать из них столько данных, сколько вам необходимо,
- 7. iter() и next() Объекты, элементы которых можно перебирать в цикле for, содержат в себе объект итератор,
- 8. пример num_list = [1, 2, 3, 4, 5] for i in num_list: print(i) 1 2 3
- 9. itr = iter(num_list) print(next(itr)) 1 print(next(itr)) 2 print(next(itr)) 3 print(next(itr)) 4 print(next(itr)) 5 print(next(itr)) Traceback (most
- 10. Генератор Генератор – это итератор, элементы которого можно перебирать (итерировать) только один раз. Любая функция в
- 11. yield При первом исполнении кода тела функции код будет выполнен с начала и до первого встретившегося
- 12. Функции-генераторы – это функции, которые возвращают значение и затем могут продолжить работу с того места, где
- 13. Во многих отношениях, функция-генератор выглядит очень похоже на обычную функцию. Основное отличие в том, что когда
- 14. range() Например, функция range() не создает весь список в памяти от начала до конца. Вместо этого
- 15. пример Функция, которая возводит числа в куб def create_cubes(n): result = [] for x in range
- 16. Функция-генератор, которая возводит числа в куб def gencubes(n): for x in range(n): yield x**3 Здесь каждый
- 17. аналогично for x in gencubes(10): print(x) 0 1 8 27 64 125 216 343 512 729
- 18. функция для получения чисел Фибоначчи def genfibon(n): """ Generate a fibonnaci sequence up to n """
- 19. пример for num in genfibon(10): print(num) 1 1 2 3 5 8 13 21 34 55
- 20. обычная функция храним в памяти весь список def fibon(n): a = 1 b = 1 output
- 21. Если мы укажем больше значение n (например 100000), вторая функция будет хранить каждое из результирующих значений,
- 22. Выражение - генератор Генераторы выражений предназначены для компактного и удобного способа генерации коллекций элементов, а также
- 23. Преимущества использования генераторов выражений Более короткий и удобный синтаксис, чем генерация в обычном цикле. Более понятный
- 24. классификация выражение-генератор (generator expression) — выражение в круглых скобках которое выдает на каждой итерации новый элемент
- 25. List comprehensions Генераторы списков предназначены для удобной обработки списков, к которой можно отнести и создание новых
- 26. Генератор списков Для создания списка, заполненного одинаковыми элементами, можно использовать оператор повторения списка, например: A =
- 27. [выражение for переменная in список] где переменная — идентификатор некоторой переменной, список — список значений, который
- 28. Генераторы списков Создать список, заполненный квадратами целых чисел можно так: A = [i ** 2 for
- 29. Генератор списков Вот так можно получить список, заполненный случайными числами от 1 до 9 (используя функцию
- 30. Генератор списков list_a = [-2, -1, 0, 1, 2, 3, 4, 5] list_b = [x for
- 31. Генератор списков Выражение выполняется независимо на каждой итерации, обрабатывая каждый элемент индивидуально. Можно использовать условия: list_a
- 32. Генератор списков >>> c = [c * 3 for c in 'list'] >>> c ['lll', 'iii',
- 33. сравнение numbs = [1, 2, 3, 4, 5] result = [] for x in numbs: if
- 34. Генератор множества (set comprehension) list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_set= {i
- 35. Генератор словаря (dictionary comprehension) – переворачиваем словарь dict_abc = {'a': 1, 'b': 2, 'c': 3, 'd':
- 36. Генератор словаря list_a = [-2, -1, 0, 1, 2, 3, 4, 5] dict_a = {x: x**2
- 37. Выражение-генератор Выражения-генераторы (generator expressions) доступны, начиная с Python 2.4. Основное их отличие от генераторов коллекций в
- 38. синтаксис list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_gen = (i for i
- 39. Выражение-генератор list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_sum = sum(i for i
- 40. Выражение-генератор list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_gen = (i for i
- 41. Практика Создать генератор списка из исходного берет только четные значения, отрицательные возводит в куб, остальные в
- 43. Скачать презентацию