#100DaysOfCode in Python Transcripts
Chapter: Days 19-21: Iteration with itertools
Lecture: Concepts: what did we learn?

Login or purchase this course to watch this video and the rest of the course contents.
0:00 Well, I hope you really enjoyed itertools,
0:02 because it's really one of our favorite modules.
0:05 It's just so much fun to use, and saves you so much time.
0:10 So, without further ado, what did we cover?
0:15 The first thing we covered was itertools.cycle.
0:19 Okay, so itertools.cycle,
0:21 we just imported cycle from itertools.
0:24 Go figure.
0:26 Then, we specified the iterable.
0:29 Okay, the iterable that we wanted cycle to go over, okay?
0:33 and for our little exercise there,
0:35 it was those weird dashes,
0:37 so that we can make a little scroller.
0:39 If you were to use a string, such as the word string
0:42 or my name, Julian,
0:44 it would then cycle through those letters
0:46 in the same way that it's cycling through those.
0:49 Okay?
0:50 And that's why cycle is so easy to use.
0:54 It does exactly what its name implies.
0:56 It's awesome.
0:58 Then, what we did was we threw it in a while loop,
1:01 while True, so that it was infinite,
1:03 it would just keep running while this app was live.
1:07 And then we pumped that..
1:10 Next, we pumped that cycle out to standard out.
1:14 That way it would work well on the command line.
1:17 Okay?
1:18 Using Next, we were able to actually go through
1:23 one iterable at a time.
1:25 One iteration at a time.
1:27 Okay, so we know each iteration, each cycle
1:31 is going to be one of these characters here.
1:35 So, Next got us to pull just that one in the first loop.
1:39 Then, in the Next loop, it then took the backslash,
1:42 and then the pipe, and then the forward slash.
1:45 Okay?
1:46 That's how this works here.
1:48 And then we just threw in a little time.sleep,
1:50 just to slow things down a bit.
1:52 Next we have itertools.product.
1:54 So again, we imported product, okay?
1:57 And then what we did was we used repeat, okay?
2:02 We used the repeat inside product to say
2:06 how many combinations we wanted.
2:09 How many times we wanted a single iterable
2:13 to be repeated or any iteration to be repeated.
2:17 Okay?
2:18 So by specifying two, when we iterate over my name,
2:23 we were able to start getting a giant list just like this.
2:26 Okay?
2:27 So J matched with J, J and then U, and so on and so forth.
2:32 Okay?
2:33 And that's what product is, it's a Cartesian product,
2:36 it gives you every possible combination.
2:39 Okay?
2:40 It doesn't matter in this instance with the doubles,
2:44 where you've got J and J.
2:45 There's no sort of behind the scenes
2:48 differing index there to say,
2:50 "Hey this is one J, and this is another one.
2:52 "So there needs to be double."
2:54 No.
2:55 It's just a J, okay?
2:59 Then we moved on to combinations and permutations,
3:01 one of my favorites.
3:03 Imported, nice and easy.
3:05 And then we created a quick list of super friends,
3:08 Mike, Bob, and Julian.
3:10 And this was for us to then use as an example.
3:13 So we got the combinations, okay?
3:17 In sets of two...
3:20 Of Mike, Bob, and Julian.
3:22 And you can see we have Mike Bob,
3:24 Mike Julian, and Bob and Julian.
3:26 And then that's when we pointed out
3:28 that, well, there's no order here.
3:31 It takes it into account that, okay
3:33 Mike and Bob both exist in this one tuple
3:36 and therefore that's criteria met,
3:38 that's a combination.
3:41 But, if we wanted the order to change,
3:44 if we wanted to take that into account,
3:46 that's where permutations comes into it.
3:48 We have Mike and Bob here,
3:51 but then we also have Bob and Mike over here.
3:54 So the order actually makes a difference.
3:58 And that's why permutations is
3:59 just as awesome as combinations.
4:02 And that was it.
4:04 So your turn.
4:05 If you haven't yet, I would strongly recommend,
4:08 go and do the traffic lights, okay?
4:12 Try not to watch the video until you've actually done it.
4:15 But at this point, you've probably already completed that.
4:18 So that was for day two.
4:19 So we're looking at the third day of this lesson set.
4:23 For this, go back to the three day overview,
4:26 if you've forgotten what it is that we were talking about,
4:29 but essentially there are a few bites
4:31 to go to the Code Challenges Platform,
4:33 and you have free access to those
4:35 and all three of them have to do with itertools,
4:38 and they're actually quite fun.
4:40 So if you haven't done that,
4:42 go and give that a crack for day three.
4:44 Enjoy.
4:45 Keep calm and code.