Iterators, Generators and You
Kshitij Saraogi (~kshitij10496) |
Iterators in Python aren't a matter of type but of the protocol i.e. any class that implements this protocol can be iterated over. This talk will present an overview of the all-encompassing iteration features in Python and how the Iterator pattern is built into the Python language so you never need to implement it by hand.
Iteration is fundamental to data processing and when scanning datasets that don’t fit in memory (say of size 1TB), we need a way to fetch the items lazily, that is, one at a time and on demand. This saves memory and may avoid useless processing as well. And this exactly is what the Iterator pattern about.
Python Generators are often considered a somewhat advanced topic, but they are actually very easy to understand once you start using them on a regular basis. This talk will also introduce you to a pragmatic use-case of generators in Python codebase.
The presentation will lay the foundations of building concepts related to iteration and proceed to empower every developer to leverage their power. Here is the walkthrough all the topics I intend to cover:
- Basic primer of different ways one can iterate over the built-in type objects
- What are the differences between the terms
- Examples of
- How can one make user-defined objects iterable?
- What are the
- How to implement the
- How can one leverage the power of a
generatorto implement the
- Additional benefits of making our objects
- tuple unpacking
- built-in functions which consume iterables
Any person who meets all the following criteria should be able to follow this talk with ease:
- You have written at least a single Python
- You know how to write a
- You have heard about
generatorsand would like to know where you can potentially use them
- Interested in writing cleaner and Pythonic code
Outline for the slides
I intend to present the slides via Jupyter notebook (using Slides extensions) as I prefer a more hands-on approach for the talk.
My name is Kshitij Saraogi. I am a Fourth-year undergraduate at Indian Institute of Technology Kharagpur, India pursuing Mathematics and Computing. I have been programming in Python more than 2 years now and have been contributing to the Open Source community for the past couple of years. I was a Google Summer of Code Student in 2017 under SymPy where I worked on equation solving modules.