Recherche des positions d'un élément dans un tableau⚓︎
Écrire une fonction indices
qui prend en paramètres un entier element
et un tableau d'entiers
et qui renvoie la liste croissante des indices de element
dans le tableau entiers
.
Cette liste sera donc vide []
si element
n'apparait pas dans entiers
.
On n'utilisera ni la méthode
index
, ni la méthodemax
.
Exemples
>>> indices(3, [3, 2, 1, 3, 2, 1])
[0, 3]
>>> indices(4, [1, 2, 3])
[]
>>> indices(10, [2, 10, 3, 10, 4, 10, 5])
[1, 3, 5]
def indices(element, entiers):bksl-nl ...bksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert indices(3, [3, 2, 1, 3, 2, 1]) == [0, 3]bksl-nlassert indices(4, [1, 2, 3]) == []bksl-nlassert indices(1, [1, 1, 1, 1]) == [0, 1, 2, 3]bksl-nlassert indices(5, [0, 0, 5]) == [2]bksl-nlbksl-nldef indices(element, entiers):bksl-nl return [i for i in range(len(entiers)) if entiers[i] == element]bksl-nlbksl-nl# testsbksl-nlbksl-nlassert indices(3, [3, 2, 1, 3, 2, 1]) == [0, 3]bksl-nlassert indices(4, [1, 2, 3]) == []bksl-nlassert indices(1, [1, 1, 1, 1]) == [0, 1, 2, 3]bksl-nlassert indices(5, [0, 0, 5]) == [2]bksl-nlbksl-nl
A
C'est la version recommandée.
Version sans compréhension de liste⚓︎
def indices(element, entiers):
positions = []
for i in range(len(entiers)):
if entiers[i] == element:
positions.append(i)
return positions
Version fonctionnelle⚓︎
def indices(element, entiers):
return [i for i, a in enumerate(entiers) if a == element]
Z