python – What is the functionality of the % operator?

Question:

Making a class on Python regarding comprehension, when creating lists or dictionaries, they gave the following example:

>>> list = [i%2 for i in range(0,10)]
>>> list

And returned:

[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

It is not clear to me in this case what the functionality of the % operator is.

Could someone explain it?

Answer:

% designates the modulus or remainder of the division.

  • If you divide 15 by 2, you get 7 with a remainder of 1. That is, 15 = 7*2 + 1.
  • If you divide 15 by 3, you get 5 with a remainder of 0. That is, 15 = 5*3.

In Python:

>>> 15 / 2
7
>>> 15 % 2
1
>>> 15 / 3
5
>>> 15 % 3
0

In your case, i%2 is dividing each element in the range between 0 and 9 by 2 and seeing what its remainder is, which would be equivalent to saying:

>>> for i in range(0, 10): print(i%2)
0
1
0
1
0
1
0
1
0
1

This concept is present in practically all programming languages ​​and, as you saw, it is very practical when used in list comprehension.

Scroll to Top