Python Tutorial: Itertools Module - Iterator Functions for Efficient Looping
Вставка
- Опубліковано 7 лют 2025
- In this Python Programming Tutorial, we will be learning about the itertools module. The itertools module is a collection of functions that allows us to work with iterators in an efficient way. Depending on your problem, this can save you a lot of memory and also a lot of work. Let's get started...
Functions Covered in This Video:
count - 1:19
zip_longest - 6:48
cycle - 9:17
repeat - 11:09
starmap - 14:06
combinations - 15:34
permutations - 15:34
product - 19:45
chain - 21:40
islice - 23:37
compress - 28:50
filterfalse - 31:49
dropwhile - 32:24
takewhile - 32:24
accumulate - 34:54
groupby - 37:04
tee - 43:28
The code from this video can be found at:
github.com/Cor...
Iterators Tutorial:
• Python Tutorial: Itera...
Sorting Tutorial:
• Python Tutorial: Sorti...
✅ Support My Channel Through Patreon:
/ coreyms
✅ Become a Channel Member:
/ @coreyms
✅ One-Time Contribution Through PayPal:
goo.gl/649HFY
✅ Cryptocurrency Donations:
Bitcoin Wallet - 3MPH8oY2EAgbLVy7RBMinwcBntggi7qeG3
Ethereum Wallet - 0x151649418616068fB46C3598083817101d3bCD33
Litecoin Wallet - MPvEBY5fxGkmPQgocfJbxP6EmTo5UUXMot
✅ Corey's Public Amazon Wishlist
a.co/inIyro1
✅ Equipment I Use and Books I Recommend:
www.amazon.com...
▶️ You Can Find Me On:
My Website - coreyms.com/
My Second Channel - / coreymschafer
Facebook - / coreymschafer
Twitter - / coreymschafer
Instagram - / coreymschafer
#Python #Itertools
U r seriously a world class teacher
Thanks man
One thing that I like about this channel is the right pace in which video moves...
Incredible video ! I love is when he says : 'If you don't know smth' and then explains it, as I am used to getting a link to another video or no explanation at all. I learned so many things !
The best youtube teacher you can ever think of... Thanks for the Tutorial sir...
Best python on youtube ,and even away better than paid courses ,thanks man.
best itertools tutorial, should be in the official page imo
Yes. I'm glad I found that explanation for the groupby function. Official documentation on this is unreadable.
Hey, Corey, I'm a python beginner and I've started watching your python tutorials a few days ago. And I just wanted to tell you that you're a great teacher. I wish that I had found out about you 3 months ago when I started. I'm a Treehouse student, I like it there but they don't really explain as well as you do. So thank you, Corey, I appreciate your great work.
Thanks!
yeah bro once you do the treehouse beginner just quit it - it's not worth it
tee is like a T is a pipe (like with fluid in it). It's an analogy with unix piping.
On *nix you can:
Command1 | tee file.txt | command2
And it will pipe the output of command1 to tee which will write it to the file 'file.txt' and in turn pipe it to command2.
Hands down the best education video on python itertools
man, I dont' even know how to thank you enough....this is such a good tutorial.
The first thing to do after getting a job: Become a Patreon for this channel
Xàm le
This is the best description/explanation of itertools that I have seen.
Thank you so much for this video.
This Guy is the best Python Teacher ever. I learnt Python from his Videos. I hope you r fine since I don't see any latest videos.
This is probably the best itertools instructional on video... What a useful module! Very good job!
I'm learning and using courses and tutorials almost all my life. And I can say with certainty - Corey is brilliant at teaching!
Thanks for the helpful video. English is a foreign language for me, but you speak and explain very clearly.
One of the most concise lessons about itertools in Python. Thanks Corey!
I've seen python videos of many tutors on UA-cam but Corey and Navin (from the Telusko channel) are my favorites. Both are amazing teachers ❤❤
Hey, just want to say that I self-learned Python and your videos were a great help to me when I first started out. Now, I just remembered the channel and came over to see whether it still continues, and your teaching quality has somehow yet improved! Many thanks, and please keep doing this. I learned a lot in this video even though I already knew itertools. Thanks again, and cheers to many more lessons!
What are up to now bro? I am also in the same boat.
Me too
I don't know, why you sharing all this knowledge, but I am extremely, extremely thankful!
You cleared all my doubts in itertools.
Thank You
Apart from being the gold standard python videos, your videos also serve as the video documentation!!
You are actually really good in teaching also the way you talk is so understandable for me and it's simple so keep up
Dude, simply excellent 🙏🙏
ur way is simple but greatly effective and the examples just make it look soo easy and help to remember it longer
Awesome! I have learned so much on your channel! Thank you!! You have a gift that not many people have!
I am really grateful for these tutorials. Thank u.
Nobody in this planet could have explained better than you. Keep up your good work. Just a small request, if you could break your python playlist in small categories it would make related videos easy to find.
This video had great content and every second was worth watching.
Thanks you for the video Corey.
This is an excellent video. Thank you, Corey! Sure, there are alternative (but more verbose) ways of carrying out many of these operations using "base python" But in the same way that comprehensions allow one to get away with writing less loops, it's the expressiveness of itertools that has me sold. As a pandas user, it was also interesting to pick up some new ideas about how 'groupby'/grouper objects can be used.
Great presentation of some heavy concepts. Thanks!
just when you think you got the hang of this stuff you explode my mind lol great video man!!!!!!
i've watched this two times now, its just nicely explained and crafted . Thoroughly enjoyed it .
thanks corey , can t wait your next video
Such a high standard video! Appreciated!
Wow, thank you...that was the best explanation the itertools ever!
Corey, I believe the tee function comes from Unix and the idea of pipes. If you want to split the flow, you put a “T” pipe in the middle which would output 2 streams. Think plumbing. Thanks for the video.
In the UK there is a term where you can ‘tee off’ from a pipe when you add a new pipe branch. Nothing to do with golfing
Fantastic, very well explained and I learned something new. Thank you!
Always the best....Good job Corey!
Thank you so much for your all your work. You are the best teacher ever :)
Hi, I’m new to your channel and I’d rlly like to say thank you for making these videos! It has rlly given me the encouragement I needed to continue to learn. The way you walk us through the process, to where it’s easy enough for a beginner like me, I’m grateful.
Thank you from France!
Just brilliant. Thanks Corey
comprehensive ,excellent explanation ,, loved it
I really like the way you simplified everything. I have been struggling to understand itertools module for a long time. The truth is, I am new to python and am looking for a mentor. Can you be my mentor. Looking forward to your reply.
takewhile and dropwhile might be useful for dealing with alarms on reading machine sensor data.
With Corey, perfection is the norm. Thanks!
You are amazing Corey
Hi Corey please do videos about async in python
I desperately need this!
Yes please corey, I am also looking for it.
Lots of Love, Saved my sleep.
Wow corey ...Love you from India
Great video! These are some seriously useful tools.
5:20 *enumerate() has left the chat.*
Great video as always, buddy.
Nice and clear demonstration, as always. Thanks!
44:41 yep, sounds like it comes from the Linux tee program. It comes from the fact that it splits the output into two, like a T shaped pipe.
Oh interesting. Thanks!
@@coreyms it actually predates linux, coming from quite early unix, as do most linux commands and internal shell commands. ps This is another truly excellent leaning video.
Thanks for the great tutorial and practical examples for each function.
good job Corey!
Excellent video! Thanks for sharing
200k congrats !!!!!
Awesome tutorial, your so thorough in your videos, thanks Man 👊
Improvements:
5:07 zip(itertools.count(), data) ---> enumerate(data)
38:57 get_state = operator.itemgetter('state')
the difference between enumerate() and itertools.count() is that you can set a step value for count
the point of the video was to demonstrate itertools. There was no indication in the video that the examples were the best and only way to do things...
Golden videos, thank you very much!
All I can say is that I love you. I'm NOT crying.
Thank you very much for covering this topic. I deeply appreciate it. Everything was covered in detail..
Was thinking about the group by() function lately. It makes no sense that the items have got to be listed in order for the grouping to work..
Wish the they could add more functionality to the groupby
I love iterators!
Thank you very much for this video and for all of your work!
Thank you very much! You are describing so clear and understandable!
T as a letter can be seen from bottom to top. The bottom is the input iterator and the top has two output iterator copies. Hence itertools.tee()
Youre a great teacher. Keep the content coming! :)
thank you for sharing man, very usefull
Thank you a lot for tutorial and timing. It is very useful.
Great tutoial
“Tee” almost certainly comes from the Unix/Linux command of the same name. The name plays on the Unix concept of pipes as I/O plumbing and represents a tee plumbing fitting[1] that divides a single incoming flow into two or more output flows (in plumbing, it can do the opposite, too, and combine multiples into one). In the Unix case, tee takes input on STDIN and outputs it to both STDOUT and the file (or files) given as its arguments.
[1] en.m.wikipedia.org/wiki/Piping_and_plumbing_fitting#Tee
Nerd alert
Thank you very much. From VietNam
Thanks man. we thank you for sharing this invaluable knowledge with us
this language is incredible
perfectly explained !!! Thanks a lot sir
thanks corey .
COREY! YOU'RE AWESOME!!! I'M SUBSCRIBED!!!
Hi Corey!
Are you planning on tackling data science stuff like Matplotlib, Pandas, Numpy, Keras, etc?
I find your vids of tremendous value. Keep'em coming!
For a very good Keras Tutorial including the math behind machine learning (only if you're interested in, its not necessary) , have a look at the deeplizard playlists! It helped me a lot!
one suggestion I have is to teach the module with some more in depth problem or even project examples. I've gone through the actual docs line by line in the past but the only time I really remember the "feeling" of how to use these tools is when I applied them in actually creating solution to a problem or even a code challenges. I don't think we learn to code by memorization but through implementation and by example.
thank you for your videos, i learn from them a lot, also i have a question about using zip with count,
at 4:30 you wrote:
daily_data = zip(itertools.count(), data)
why instead not to use enumerate? :
daily_data = enumerate(data)
the benefit in functionality with the count is that you can make step
what is the difference in performance, memory usage, etc?
if you use enumerate it well not be asigned inside a list but using itertools well make that happen
enumerate = 0 "good"
1 "bad"
itertools = [(0,"good"),(1,"bad")]
He uses itertools.count inside of zip, both zip and enumerate give you iterator of tuples.
I didn't understand your point
itertools.count() is more versatile
Note that at 6:15, a "step" argument can be passed into itertools.count(), which is not possible for enumerate().
So, for enumerate(), we can only control the starting index, the step size is fixed to 1 and we cannot pass in any argument to change it.
While for itertools.count(), we can change both the starting index and the step size by passing in the corresponding arguments.
@@emilksenzovski885 because he presented the itertools functions.
wondeful corey, BTW, tee command in unix is used to route the output bothe to stdin and to a file(like logging) at the same time
Thanks a lot Corey !
Amazing teach video! Wow!
Thanks , very helpful.
Hi Corey,
Great Video. Just wanted to comment that the first example that you showed with the zip and itertools.count() function is similar to the enumerate function like
data=[100,200,300]
my_data=list(enumerate(data))
print(my_data)
similar result
really useful tools, TY
Please don't say this video is going long. Take as much time you need.
Waiting for next video on RegEx.
Thank you very much
The 'tee' fn may refer to a 'tee' fitting in plumbing, which forks off into two directions.
You are making us smart Corey. Can you please make a complete project in Django that can generate a report? I haven't seen any Django project in youtube that has that.
it's great ... Thanks man 🍏
Hi Corey Schafer,you are simply awesome ,Can you please do lectures on searching and sorting algorithms using python
@groupby example:
for key, group in person_group:
print(f"{key}: {sum(1 for i in group)}")
would be way to avoid the list cast (eg if you would like to stick with lazy iterators).
Superb
Ur videos are awsome
Thanks you so much Corey Schafer
please can you do a video in Threading, and sockects? Thanks so much for the good works u have been doing
great content
irrc, the tee command from linux is based on the concept of the T shape tubing, one input two outputs.
The tee command is named after the T-splitter in plumbing, which splits water into two directions and is shaped like an uppercase T.
Suppose you wish to get the number of files in your directory and also store them in a new file.
Intuitively, you may come up with something as this, ls -l > listOfFiles.txt | wc -l
But there's a problem. All the output of ls -l is redirected to creating listOfFiles.txt file. So, the first part works really well. And there's for there's nothing 'left' to redirect to the 'wc -l' command, since, redirection to a file doesn't really return anything.
To achieve what we wanted to achieve, we pass the output of ls -l to 'tee'. Tee does two things, writes to the file whose name is mentioned after the tee command and also sends it to command that comes after.
ls -l | tee listOfFiles.txt | wc -l
This would display the number of lines that ls - l outputs, while at the same time writing the list of files to the file 'listOfFiles.txt'.
Once you get what it's trying to achieve it becomes easier to apply. Just remember when you send something to tee, it would split it two ways, 1) to the file, 2) to the next command in place.