S'entraîner aux questions d'entrevue de programmation en Python
Kirill Smirnov
Data Science Consultant, Altran
map( )
map( Iterable1, Iterable2, ...)
Itérables : [1, 2, 3, 4, 5], [10, 20, 30, 40, 50], ...
map(function(x1, x2, ...), Iterable1, Iterable2, ...)
Itérables : [1, 2, 3, 4, 5], [10, 20, 30, 40, 50], ...
1, 10, ... $\rightarrow$ function(1, 10, ...) $\rightarrow$ nouvel objet
2, 20, ... $\rightarrow$ function(2, 20, ...) $\rightarrow$ nouvel objet
3, 30, ... $\rightarrow$ function(3, 30, ...) $\rightarrow$ nouvel objet
4, 40, ... $\rightarrow$ function(4, 40, ...) $\rightarrow$ nouvel objet
5, 50, ... $\rightarrow$ function(5, 50, ...) $\rightarrow$ nouvel objet
nums = [1, 2, 3, 4, 5]
L'objectif : obtenir [1, 4, 9, 16, 25]
def squared(x):
return x**2
squares = map(squared, nums)
print(squares)
<map object at 0x7fdbe4ab3da0>
squares est itérable
for square in squares:
print(square)
1
4
9
16
25
nums = [1, 2, 3, 4, 5]
L'objectif : obtenir [1, 4, 9, 16, 25]
def squared(x):
return x**2
squares = map(squared, nums)
print(squares)
<map object at 0x7fdbe4ab3da0>
squares est un itérable
list(squares)
[1, 4, 9, 16, 25]
nums = [1, 2, 3, 4, 5]
L'objectif : obtenir [1, 4, 9, 16, 25]
def squared(x):
return x**2
squares = map(squared, nums)
print(squares)
<map object at 0x7fdbe4ab3da0>
squares est un itérateur
next(squares)
1
next(squares)
4
nums = [1, 2, 3, 4, 5]
L'objectif : obtenir [1, 4, 9, 16, 25]
def squared(x):
return x**2
squares = map(squared, nums)
list(squares)
[1, 4, 9, 16, 25]
nums = [1, 2, 3, 4, 5]
L'objectif : obtenir [1, 4, 9, 16, 25]
squares = map(lambda x: x**2, nums)
list(squares)
[1, 4, 9, 16, 25]
nums1 = [1, 2, 3, 4, 5]
nums2 = [10, 20, 30, 40, 50]
L'objectif : obtenir : [1*10, 2*20, 3*30, 4*40, 5*50] = [10, 40, 90, 160, 250]
mult = map(lambda x, y: x*y, nums1, nums2)
list(mult)
[10, 40, 90, 160, 250]
filter( )
filter( Iterable)
Itérable : [1, 2, 3, 4, 5]
filter(function(x), Iterable)
Itérable : [1, 2, 3, 4, 5]
1 $\rightarrow$ function(1) $\rightarrow$ True $\rightarrow$ 1 conservé
2 $\rightarrow$ function(2) $\rightarrow$ False $\rightarrow$ 2 rejeté
3 $\rightarrow$ function(3) $\rightarrow$ True $\rightarrow$ 3 conservé
4 $\rightarrow$ function(4) $\rightarrow$ False $\rightarrow$ 4 rejeté
5 $\rightarrow$ function(5) $\rightarrow$ True $\rightarrow$ 5 conservé
nums = [-3, -2, -1, 0, 1, 2, 3]
L'objectif : obtenir : [1, 2, 3]
def positive(x):
return x > 0
fobj = filter(positive, nums)
print(fobj)
<filter object at 0x7f196d378d68>
fobj est itérable
for item in fobj:
print(item)
1
2
3
nums = [-3, -2, -1, 0, 1, 2, 3]
L'objectif : obtenir : [1, 2, 3]
def positive(x):
return x > 0
fobj = filter(positive, nums)
print(fobj)
<filter object at 0x7f196d378d68>
fobj est un itérable
list(fobj)
[1, 2, 3]
nums = [-3, -2, -1, 0, 1, 2, 3]
L'objectif : obtenir : [1, 2, 3]
def positive(x):
return x > 0
fobj = filter(positive, nums)
print(fobj)
<filter object at 0x7f196d378d68>
fobj est un itérateur
next(fobj)
1
next(fobj)
4
nums = [-3, -2, -1, 0, 1, 2, 3]
L'objectif : obtenir : [1, 2, 3]
def positive(x):
return x > 0
fobj = filter(positive, nums)
list(fobj)
[1, 2, 3]
nums = [-3, -2, -1, 0, 1, 2, 3]
L'objectif : obtenir : [1, 2, 3]
fobj = filter(lambda x: x > 0, nums)
list(fobj)
[1, 2, 3]
from functools import reduce
reduce(function(x, y), Iterable)
Itérable : [1, 2, 3, 4, 5]
[1, 2, 3, 4, 5] $\rightarrow$ nouvel objet du même type que le contenu

from functools import reduce
reduce(function(x, y), Iterable)
Itérable : [1, 2, 3, 4, 5]
[1, 2, 3, 4, 5] $\rightarrow$ nouvel objet du même type que le contenu

from functools import reduce
reduce(function(x, y), Iterable)
Itérable : [1, 2, 3, 4, 5]
[1, 2, 3, 4, 5] $\rightarrow$ nouvel objet du même type que le contenu

from functools import reduce
reduce(function(x, y), Iterable)
Itérable : [1, 2, 3, 4, 5]
[1, 2, 3, 4, 5] $\rightarrow$ nouvel objet du même type que le contenu

from functools import reduce
reduce(function(x, y), Iterable)
Itérable : [1, 2, 3, 4, 5]
[1, 2, 3, 4, 5] $\rightarrow$ nouvel objet du même type que le contenu

nums = [8, 4, 5, 1, 9]
L'objectif : obtenir : 1 – minimum
def smallest(x, y):
if x < y:
return x
else:
return y
reduce(smallest, nums)
1
smallest(8, 4) $\rightarrow$ 4
smallest(4, 5) $\rightarrow$ 4
smallest(4, 1) $\rightarrow$ 1
smallest(1, 9) $\rightarrow$ 1 – résultat final
nums = [8, 1, 4, 2, 9]
L'objectif : obtenir : 1 – minimum
def smallest(x, y):
if x < y:
return x
else:
return y
reduce(smallest, nums)
1
nums = [8, 1, 4, 2, 9]
L'objectif : obtenir : 1 – minimum
reduce(lambda x, y: x if x < y else y, nums)
1
S'entraîner aux questions d'entrevue de programmation en Python