Reuven Lerner's Python Courses/Iterators and generators

  • $240

Iterators and generators

Explore Python's iterator protocol in depth, including classes, generators, coroutines, and itertools.

Get this course, and many others, as part of my LernerPython membership, at https://LernerPython.com.

Take full advantage of "for" loops

Python's "for" loops seem quite simple. But actually, the iterator protocol is deeply embedded in the language. This course, with more than six hours of videos and a dozen different hands-on exercises, will teach you what you need to take advantage of the protocol in your own code — with iterator classes, generator functions, coroutines, generator functions, and even the "itertools" module.

If you've been programming in Python for a while, then you'll want to take this course. It'll pull back the curtain on how the language works, and will let you write more flexible, elegant, and efficient code.

Contents

00 Welcome
  • 2 mins
  • 48.5 MB

Section 1: Iterators

Section 1 — Iterators.ipynb
  • 73.5 KB
01 Intro to iteration
  • 5 mins
  • 206 MB
02 iter
  • 4 mins
  • 92.9 MB
03 next
  • 6 mins
  • 126 MB
04 iterable vs. iterator
  • 4 mins
  • 78.7 MB
Preview
05 Simple iterator
  • 12 mins
  • 277 MB
06 Exercise 1
  • 2 mins
  • 42.7 MB
exercises-1.txt
  • 419 Bytes
07 Exercise 1 solution
  • 4 mins
  • 93.7 MB
08 Iterators as filters
  • 4 mins
  • 88.4 MB
09 Exercises 2
  • 2 mins
  • 38 MB
exercises-2.txt
  • 650 Bytes
10 Exercise 2 solutions
  • 7 mins
  • 164 MB
11 Should __iter__ return self?
  • 9 mins
  • 191 MB
12 Using a helper class
  • 8 mins
  • 177 MB
13 Exercise 3
  • 2 mins
  • 26.9 MB
exercises-3.txt
  • 568 Bytes
14 Exercise 3 solution
  • 4 mins
  • 84.2 MB
15 Sorting results
  • 11 mins
  • 241 MB
16 Additional methods
  • 4 mins
  • 81.5 MB
17 One class, multiple iterators
  • 6 mins
  • 139 MB
18 Data changing size during iteration
  • 8 mins
  • 187 MB
19 Exercises 4
  • 2 mins
  • 37.6 MB
exercises-4.txt
  • 954 Bytes
20 Exercise 4 solution
  • 12 mins
  • 260 MB

Section 2: Generators

Section 2 — Generators.ipynb
  • 92.1 KB
21 Generator functions
  • 7 mins
  • 153 MB
22 Generators maintain state
  • 9 mins
  • 190 MB
Preview
23 return vs. yield
  • 6 mins
  • 130 MB
24 Parameters and generator functions
  • 3 mins
  • 59.8 MB
25 Exercise 5
  • 2 mins
  • 30.6 MB
26 Exercise 5 solution
  • 5 mins
  • 104 MB
27 Chunking data with generators
  • 5 mins
  • 111 MB
28 Exercise 6
  • 2 mins
  • 34.6 MB
29 Exercise 6 solution
  • 6 mins
  • 129 MB
30 Generators for buffering
  • 12 mins
  • 282 MB
31 Wrapping complex functionality
  • 4 mins
  • 84.2 MB
32 Exercise 7
  • 2 mins
  • 37.2 MB
exercises-7.txt
  • 558 Bytes
33 Exercise 7 solution
  • 9 mins
  • 191 MB
34 Generator functions vs. iterator classes
  • 5 mins
  • 97.5 MB
35 Exercise 8
  • 1 min
  • 18.9 MB
exercises-8.txt
  • 471 Bytes
36 Exercise 8 solution
  • 4 mins
  • 84.1 MB
37 Exceptions and generators
  • 4 mins
  • 92.4 MB
38 Rewriting "for"
  • 5 mins
  • 108 MB
39 Generator methods
  • 7 mins
  • 147 MB
40 Exercise 9
  • 3 mins
  • 52.9 MB
41 Exercise 9 solution
  • 8 mins
  • 172 MB

Section 3: Coroutines

42 Coroutines and "send"
  • 10 mins
  • 221 MB
43 Using coroutines
  • 6 mins
  • 126 MB
44 Using "throw" with coroutines
  • 8 mins
  • 185 MB
45 Using "close"
  • 5 mins
  • 112 MB
46 Exercise 10
  • 2 mins
  • 40 MB
exercises-10.txt
  • 583 Bytes
47 Exercise 10 solution
  • 4 mins
  • 93.9 MB
48 Chatbots as coroutines
  • 4 mins
  • 88 MB
49 Subgenerators and "yield from"
  • 4 mins
  • 91.9 MB
50 Coroutines and "yield from"
  • 9 mins
  • 188 MB
51 "yield" vs "yield from"
  • 4 mins
  • 93.1 MB
52 Exercise 11
  • 3 mins
  • 58.2 MB
exercises-11.txt
  • 902 Bytes
53 Exercise 11 solution
  • 8 mins
  • 170 MB
54 Functions vs. generator functions
  • 6 mins
  • 124 MB
55 Looking inside of generators
  • 6 mins
  • 134 MB
Section 3 -- Coroutines.ipynb
  • 65.1 KB

Section 4: Generator comprehensions

Section 4 — Generator comprehensions.ipynb
  • 38.7 KB
56 Generator comprehensions
  • 4 mins
  • 78.5 MB
57 Using generator comprehensions
  • 5 mins
  • 94.1 MB
58 Removing double parentheses
  • 4 mins
  • 92.8 MB
Preview
59 The use case for generator expressions
  • 7 mins
  • 148 MB
60 Retrieving from files
  • 5 mins
  • 102 MB
61 Exercise 12
  • 3 mins
  • 60.4 MB
62 Exercise 12 solution
  • 5 mins
  • 96.3 MB
63 Nested generator expressions
  • 4 mins
  • 84.1 MB
64 Nested expressions and complex data
  • 4 mins
  • 83.3 MB
65 Multiple conditions in nested generator expressions
  • 4 mins
  • 75 MB
66 Returning generators from functions
  • 3 mins
  • 64.9 MB
67 Returning generators from methods
  • 5 mins
  • 117 MB
68 Exercises 13
  • 2 mins
  • 35.3 MB
69 Exercises 13 solutions
  • 9 mins
  • 191 MB
alice-in-wonderland.txt
  • 73 KB
mini-access-log.txt
  • 35.7 KB

Section 5: itertools

70 itertools
  • 3 mins
  • 52.8 MB
71 itertools.chain
  • 5 mins
  • 95.6 MB
72 itertools.count
  • 5 mins
  • 96.9 MB
73 cycle and repeat
  • 5 mins
  • 96.5 MB
74 filterfalse
  • 3 mins
  • 67.8 MB
75 takewhile and dropwhile
  • 4 mins
  • 78.1 MB
76 compress
  • 3 mins
  • 52.9 MB
77 accumulate
  • 3 mins
  • 49.2 MB
78 tee
  • 3 mins
  • 57.8 MB
79 permutations and combinations
  • 6 mins
  • 123 MB
80 more-itertools
  • 3 mins
  • 48.3 MB
81 Conclusion
  • 2 mins
  • 35.2 MB