On considère la liste suivante :
L=[10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
Quel programme permet d'échanger le premier terme avec le dernier de la liste L ?
Afin d'échanger le premier terme avec le dernier, il faut une variable intermédiaire qu'on peut appeler a. Cette variable permet de stocker une des deux valeur pendant l'échange.
On peut raisonner de la manière suivante :
- a prend la valeur du dernier élément de L.
- Le dernier élément de L prend la valeur du premier élément.
- Le premier élément prend la valeur de a.
Ainsi le programme qui permet d'échanger le premier et le dernier terme de L est le suivant :
L=[10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
a=L[-1]
L[-1]=L[0]
L[0]=
On considère la liste L=[10, 6, 7, 3, 4, 2, 9, 3, 0, 8].
Parmi les programmes suivants, lequel permet de modifier la liste L en plaçant d'abord les valeurs inférieures ou égales à 5, suivies de celles strictement supérieures à 5 ?
Afin de modifier la liste L en plaçant d'abord les valeurs inférieures ou égales à 5, suivies de celles strictement supérieures à 5, on peut créer deux listes :
- Une liste qui contient les termes de L inférieurs ou égaux à 5.
- Une liste qui contient les termes de L supérieurs à 5.
Pour générer ces deux listes, la génération par compréhension est adaptée.
Ensuite il suffit de concaténer ces deux listes pour obtenir la liste L demandée.
Ainsi le programme qui permet de modifier la liste L en plaçant d'abord les valeurs inférieures ou égales à 5, suivies de celles strictement supérieures à 5 est le suivant :
L=[10, 6, 7, 3, 4, 2, 9, 3, 0, 8]
L1=[L[i] for i in range(len(L)) if L[i]<=5]
L2=[L[i] for i in range(len(L)) if L[i]>5]
L=L1+L2
On considère la liste L=[10, 6, 7, 3, 4, 2, 9, 3, 0, 8].
Parmi les programmes suivants, lequel permet d'inverser l'ordre des termes de la liste L ?
La méthode qui permet d'inverser l'ordre des termes d'une liste est la méthode .reverse().
Ainsi le programme qui permet d'inverser l'ordre des termes de la liste L est le suivant :
L=[10, 6, 7, 3, 4, 2, 9, 3, 0, 8]
L.reverse()
On considère la liste L=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
Parmi les programmes suivants, lequel permet d'échanger chaque terme de rang pair avec le terme suivant de rang impair (s'il existe) de la liste L ?
On cherche à échanger deux à deux les termes de la liste L.
Dans notre cas, la liste contient 10 termes, il faudra donc répéter 5 fois la même opération. Ce nombre correspond au quotient de la division euclidienne de la longueur de la liste par 2. C'est pourquoi la boucle for doit se répéter len(L)//2 fois.
Ensuite pour échanger deux termes il suffit d'utiliser une variable de stockage. L'échange se fait entre les termes 2i et 2i+1, c'est à dire entre un terme de rang pair et le terme de rang impair qui suit.
Le programme est donc le suivant :
L=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in range(len(L)//2):
a=L[2*i]
L[2*i]=L[2*i+1]
L[2*i+1]=a
On considère la liste L=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
Parmi les programmes suivants, lequel permet de mettre le dernier élément de la liste L en première position puis de laisser les autres éléments derrière dans l'ordre initial ?
On peut appeler le dernier terme d'une liste grâce à la commande L[-1].
Pour créer une liste contenant tous les termes de L sauf le dernier, on peut utiliser la génération par compréhension avec la commande suivante :
L2=[L[i] for i in range(len(L)-1].
On peut ensuite concaténer la liste contenant uniquement le dernier terme et L2.
Tout cela peut se faire directement sous forme de génération par compréhension avec le programme suivant :
L=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
L=[L[-1]]+[L[i] for i in range(len(L)-1)]