Sagot :
Réponse :
Bonjour,
Explications :
1. Programme une fonction rotation(liste) qui décale d’un rang tous les éléments d’une liste (le dernier élément devenant le premier). La fonction renvoie une nouvelle liste.
Par exemple rotation([1,2,3,4]) renvoie la liste [4,1,2,3].
Considérons l'ensemble des nombres i tels que 0≤i≤4
E={0,1,2,3,4}={i ∈N | 0≤i≤4}
F={ i % 5 | i∈E}
F =E n'est autre que l'ensembre des restes de la division de tout élément de E par 5.
Retirons 1 à chaque valeur de i
1-1=0 => 0 %5 =0
2-1=1 => 1 % 5 =1
3-1=2 => 2 %5 =2
4-1=3 => 3 %5 =3
0-1=-1 => -1 %5 =4 (car -1 %5 =(-1+5)%5 =4%5=4)
def rotation (pListe):
return ([ pListe[(i-1)% len(pListe) ] for i in range(len(pListe))])
2. Programme une fonction inverser(liste) qui inverse l’ordre des éléments d’une liste.
Par exemple inverser([1,2,3,4]) renvoie la liste [4,3,2,1].
un grand classique:
def inverser(pListe):
return [pListe[::-1]]
3. A) Programme une fonction supprimer_rang(liste,rang) qui renvoie une liste formée de tous les éléments, sauf celui au rang donné.
Par exemple supprimer_rang([8,7,6,5,4].
Incompréhensible
B) renvoie la liste [8,7,5,4] (l’élément 6 qui était au rang 2 est supprimé).
def supprimer_rang(pListe,pRang):
def phi(y, x):
if y < x: return y
else: return y + 1
for i in range(len(pListe)-1):
print (i,phi(i,pRang) )
return ([pListe[phi(i,pRang) ] for i in range(len(pListe)-1)] )
Rem: phi est une fonction définie uniquement dans la fonction supprimer_rang.
On recherche len(pListe)-1 nombres puisque l'on en a supprimé 1.
On itère des les nombres x de 0,1,2,... ,len(pListe)-1 et si celui-ci est
inférieur à pRang, on le renvoie
sinon on renvoie le suivant de x
ex:
E=[8,7,6,5,4]
A=supprimer_rang(E,2)
x est le rang : il varie depuis 0 jusque 4 (exclus)
x=0 =>on renvoie 0 , E[x) vaut 8
x=1 => 1 E[x]=7
x=2 => on renvoie 2+1 =3 , E[3]=5
x=3 => 3+1=4, E[4]=4
4. Programme une fonction supprimer_element(liste,element) renvoyant une liste qui contient tous les éléments sauf ceux égaux à l’élément spécifié.
Par exemple supprimer_element([8,7,4,6,5,4],4) renvoie la liste [8,7,6,5] (tous les éléments égaux à 4 ont été supprimés).
Un petit parcours de la liste sans renvoyer les éléments égaux à pElement.
def supprimer_element(pListe,pElement):
return ([ i for i in pListe if i != pElement] )