Python en Mathématiques - Niveau 2

Exercices pour s'approprier les listes

Indice, valeur, longueur

On considère les listes A = [1, 5, 2, 4] et B = [5, 9, 6, 1, 4, 8].

  1. Donner les longueurs respectives de ces listes.
  2. Rappeler comment obtenir ces longueurs en Python.
  3. Donner les valeurs de A[0], de A[2] puis de A[4].
  4. Quel est l'indice de l'élément de B ayant pour valeur 1 ?
  • Questions 1°/ et 2°/
  • Question 3°/
  • Question 4°/

La liste A contient 4 éléments : sa longueur est 4. On l'obtient en Python grâce à l'instruction len(A).

La liste B contient 6 éléments : sa longueur est 6. On l'obtient en Python grâce à l'instruction len(B).

A[0] vaut 1, A[2] vaut 2 et A[4] n'est pas défini car la liste A contient seulement 4 éléments.

En Python, demander la valeur de A[4] renvoie une erreur :

>>> A = [1, 5, 2, 4]

>>> A[4]
IndexError: list index out of range

1 est le quatrième élément de la liste B donc son indice est 3.

Concaténer, ajouter, supprimer

Soient les listes : A = [3, 2, 5] et B = [5, 1, 8].

  1. On saisit l'instruction A = A+B.
    Anticiper le contenu de la liste A après exécution de cette instruction :
    >>> A = [3, 2, 5]
    
    >>> B = [5, 1, 8]
    
    >>> A = A+B
    
  2. On saisit ensuite l'instruction A.append(1).
    Anticiper le contenu de la liste A après exécution de cette instruction :
    >>> A = [3, 2, 5]
    
    >>> B = [5, 1, 8]
    
    >>> A = A+B
    
    >>> A.append(1)
    
  3. Puis on saisit l'instruction A.remove(1).
    Anticiper le contenu de la liste A après exécution de cette instruction :
    >>> A = [3, 2, 5]
    
    >>> B = [5, 1, 8]
    
    >>> A = A+B
    
    >>> A.append(1)
    
    >>> A.remove(1)
    
  4. Enfin on saisit l'instruction A.pop(1).
    Anticiper le contenu de la liste A après exécution de cette instruction :
    >>> A = [3, 2, 5]
    
    >>> B = [5, 1, 8]
    
    >>> A = A+B
    
    >>> A.append(1)
    
    >>> A.remove(1)
    
    >>> A.pop(1)
    
  • Question 1°/
  • Question 2°/
  • Question 3°/
  • Question 4°/

A contient la concaténation des listes [3, 2, 5] et [5, 1, 8] donc le contenu de A est [3, 2, 5, 5, 1, 8].

On prolonge A en ajoutant 1 en queue donc le contenu de A devient [3, 2, 5, 5, 1, 8, 1].

On enlève la première occurence de 1 dans A donc le contenu de A devient [3, 2, 5, 5, 8, 1].

On enlève l'élément de A ayant pour indice 1 donc le contenu de A devient [3, 5, 5, 8, 1].

Parcourir les éléments d'une liste

On considère le programme ci-dessous, écrit en Python :


L = [7, 5, 2]

M = []
for elt in L:
    M.append(elt-2)
		

Donner le contenu de la liste M après l'exécution de ce programme.

  • Une solution

On place successivement dans M chaque élément de L auquel on soustrait 2. La liste M est alors [5, 3, 0].

Parcourir les indices d'une liste

On considère le programme ci-dessous, écrit en Python :


L = [7, 5, 2]

M = []
for i in range(len(L)):
    M.append(i*L[i])
		

Donner le contenu de la liste M après l'exécution de ce programme.

  • Une solution

On place successivement dans M chaque élément de L multiplié par son indice. La liste M est alors [0, 5, 4].

Parcourir les indices d'une liste (bis)

On considère le programme ci-dessous, écrit en Python :


L = [5, 3, 7, 8, 4]

dernier = len(L)-1
M = []
for i in range(len(L)):
    M.append(L[dernier-i])
		

Donner le contenu de la liste M après l'exécution de ce programme.

  • Une solution

On place successivement dans M, à l'indice i, chaque élément de L d'indice len(L)-1-i. La liste M est alors [4, 8, 7, 3, 5].

Parcours de liste et fonction

On considère la fonction f() ci-dessous, écrite en Python :


def f(L):
	M = []
	for i in range(1, len(L)):
		M.append(L[i]-L[i-1])
	return M
		

Quelle liste est renvoyée par l'appel f([5, 3, 7, 8, 4] ) ?

  • Une solution

On parcourt les élément de L à partir de l'élément d'indice 1 puis on place successivement dans M, à l'indice i, la différence entre L[i] et son précédent L[i-1]. La liste M est alors [-2, 4, 1, -4].