Python 3 - Itertools

Python 3: From Scratch to Intermediate ADVANCED LEVEL: Python 3 - Other Advanced Concepts
5 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€92.30
List Price:  €129.22
You save:  €36.92
£79.14
List Price:  £110.81
You save:  £31.66
CA$135.92
List Price:  CA$190.30
You save:  CA$54.37
A$153.17
List Price:  A$214.44
You save:  A$61.27
S$134.71
List Price:  S$188.59
You save:  S$53.88
HK$782.26
List Price:  HK$1,095.19
You save:  HK$312.93
CHF 90.56
List Price:  CHF 126.79
You save:  CHF 36.22
NOK kr1,076.34
List Price:  NOK kr1,506.92
You save:  NOK kr430.58
DKK kr688.47
List Price:  DKK kr963.88
You save:  DKK kr275.41
NZ$166.49
List Price:  NZ$233.09
You save:  NZ$66.60
د.إ367.19
List Price:  د.إ514.08
You save:  د.إ146.89
৳11,000.23
List Price:  ৳15,400.77
You save:  ৳4,400.53
₹8,335.05
List Price:  ₹11,669.40
You save:  ₹3,334.35
RM473.25
List Price:  RM662.57
You save:  RM189.32
₦139,656.03
List Price:  ₦195,524.03
You save:  ₦55,868
₨27,872.43
List Price:  ₨39,022.53
You save:  ₨11,150.09
฿3,637.73
List Price:  ฿5,092.97
You save:  ฿1,455.24
₺3,222.80
List Price:  ₺4,512.05
You save:  ₺1,289.25
B$497.67
List Price:  B$696.75
You save:  B$199.08
R1,888.37
List Price:  R2,643.79
You save:  R755.42
Лв180.67
List Price:  Лв252.95
You save:  Лв72.27
₩134,942
List Price:  ₩188,924.20
You save:  ₩53,982.20
₪366.06
List Price:  ₪512.51
You save:  ₪146.44
₱5,625.18
List Price:  ₱7,875.48
You save:  ₱2,250.29
¥15,118.78
List Price:  ¥21,166.90
You save:  ¥6,048.12
MX$1,663.06
List Price:  MX$2,328.35
You save:  MX$665.29
QR365.44
List Price:  QR511.63
You save:  QR146.19
P1,373.02
List Price:  P1,922.28
You save:  P549.26
KSh13,148.68
List Price:  KSh18,408.68
You save:  KSh5,260
E£4,723.53
List Price:  E£6,613.14
You save:  E£1,889.60
ብር5,694.53
List Price:  ብር7,972.57
You save:  ብር2,278.04
Kz83,612.73
List Price:  Kz117,061.17
You save:  Kz33,448.44
CLP$98,024.19
List Price:  CLP$137,237.79
You save:  CLP$39,213.60
CN¥722.49
List Price:  CN¥1,011.52
You save:  CN¥289.02
RD$5,928.03
List Price:  RD$8,299.48
You save:  RD$2,371.45
DA13,469.95
List Price:  DA18,858.47
You save:  DA5,388.52
FJ$225.25
List Price:  FJ$315.36
You save:  FJ$90.11
Q781.84
List Price:  Q1,094.62
You save:  Q312.77
GY$20,987.69
List Price:  GY$29,383.60
You save:  GY$8,395.91
ISK kr13,817.61
List Price:  ISK kr19,345.21
You save:  ISK kr5,527.60
DH1,010.57
List Price:  DH1,414.84
You save:  DH404.26
L1,763.81
List Price:  L2,469.40
You save:  L705.59
ден5,677.01
List Price:  ден7,948.05
You save:  ден2,271.03
MOP$807.66
List Price:  MOP$1,130.76
You save:  MOP$323.09
N$1,895.98
List Price:  N$2,654.45
You save:  N$758.46
C$3,689.21
List Price:  C$5,165.04
You save:  C$1,475.83
रु13,357.88
List Price:  रु18,701.57
You save:  रु5,343.68
S/371.02
List Price:  S/519.45
You save:  S/148.42
K383.60
List Price:  K537.05
You save:  K153.45
SAR375.02
List Price:  SAR525.04
You save:  SAR150.02
ZK2,548.47
List Price:  ZK3,567.96
You save:  ZK1,019.49
L458.83
List Price:  L642.38
You save:  L183.55
Kč2,334.38
List Price:  Kč3,268.22
You save:  Kč933.84
Ft36,425.52
List Price:  Ft50,997.18
You save:  Ft14,571.66
SEK kr1,059.50
List Price:  SEK kr1,483.35
You save:  SEK kr423.84
ARS$85,666.43
List Price:  ARS$119,936.42
You save:  ARS$34,269.99
Bs695.09
List Price:  Bs973.16
You save:  Bs278.06
COP$389,673.99
List Price:  COP$545,559.18
You save:  COP$155,885.18
₡50,509.65
List Price:  ₡70,715.54
You save:  ₡20,205.88
L2,474.33
List Price:  L3,464.17
You save:  L989.83
₲736,638.54
List Price:  ₲1,031,323.43
You save:  ₲294,684.88
$U3,781
List Price:  $U5,293.55
You save:  $U1,512.55
zł398.17
List Price:  zł557.46
You save:  zł159.28
Already have an account? Log In

Transcript

Okay, it's time to learn about a new and exciting Python module called itertools. This module includes a lot of functions for working with iterable data sets. And we will see some of them in this lecture. I think this would be a great follow up on the previous lecture about iterators, and generators. Let's get into the Python interpreter and see what's the deal with itertools. First, as always, we have to import the module so we can have all of its functions available in our namespace.

So let's use from itertools import all. For this lecture. I've chosen five functions from the itertools module to discuss and test in the Python interpreter. You will find all other functions inside this module using a link I have attached to this lecture. So check out that link for more information about itertools. Now let's get to work and let's consider two lists to be the iterable data sets Which to work on.

Okay, so these are the lists. The first function we are going to discuss is chain. This function simply takes several sequences arguments and change them together. Let's say this chain of list one and list two. Okay, what we got back is an iterator object. Now to see its contents, we can either loop over it using a for loop, and print each element, or just feed it to the list function.

Let's test both methods, starting with the for loop. So for i in chain of list one, and list two, print I, okay, so this way, we have each element of the chain sequences printed out to the screen. Secondly, we can just use the list function applied on the chain function. So let's try this as well. And as expected, we got the chain sequence in the form of a list. Next, the count function returns an iterator that generates consecutive integers until you stop it.

Otherwise it will go on forever. That's why you should Use it wisely. So you won't end up with an infinite loop and a huge computer resource consumption. So let me put this inside the for loop. Okay, so let's translate this code in plain English for each element in the sequence returned by the count function. If that element is less than or equal to 50, then printed out to the screen.

Otherwise, just break out of the loop. Notice that I pass two values as arguments to the count function. The first value is the starting point of the sequence. And the second value is the step to increment by this way, we get the numbers between 10 and 50, inclusively with a step of 2.5. Okay, the next function that we're going to discuss is cycle, this function returns an iterator that simply repeats the value given as an argument infinitely. Again, if you use it inside the program, you have to find a way to break out of the infinite loop.

Otherwise your program will crash. Let's see it in action. So this is the code For I in this range, print I infinitely let's try this. And as you can see, we got an infinite loop which repeats the elements of the range forever, at least theoretically. Always remember to use Ctrl C in the Python interpreter to break out of this never ending loop. Next, let's study the filter faults function.

Remember the filter function we've seen in the lecture about map and filter? Well, it works similarly to that function with a small twist. Filter false will return the elements for which the function you provide as an argument returns false. Let's check this out. Let me write this first. Okay, so first, you're writing the function name, filter false.

Then in between parentheses, you enter two arguments. The first argument is the function you want to consider. I hope you remember lambda functions from earlier in the course. And the second argument is the iterable sequence you want to apply the function to so the final result result should be the elements of that list for which the lambda function returns false, meaning all the elements which are not less than five. Now let's see from right, and let's apply the list function to get the results. Okay, great.

We got five, six, and seven, which is indeed the correct result. Next, let's see another function I slice. Remember, list slices or string slices. This function basically does the same thing. You can even specify a starting point in the sequence, an end point and the step just like we did with slices thus far in the course. First, let's consider the range generated by a range of 10 then converted to a list and slice it in the old fashioned way.

So we have range of 10, lists of range of 10. And let's say list of range of 10, sliced starting at index two up to index nine, with a step of two. So we start the slice at the element position at index two. We slice the list up to but not including the element at index nine with a step two, the result is this list right here. Now let's do the same thing using the slice function. So I slice of range of 10 comma, two comma, nine comma two.

Let's close the parentheses. Okay, so we got an iterator object. Now let's use the list function to see the final result. Okay, so the result is identical, which is what we wanted in the first place. So remember, I slice as an alternative to the old way of slicing. I hope you had fun with the itertools module.

Don't forget to check out the link in the attachment for further reading on this topic and additional functions.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.