Les trois astuces python les plus fréquentes

publicité
Astuces python
On réunit ici quelques commandes pratiques spécifiques au langage python. Comme elles n’existent pas dans tous
les langages, on déconseille de les utiliser dans un algorithme écrit en français. Cependant, elles seront sans doute
acceptées pour rédiger une fonction en python.
1
Boucle "pour" améliorée : parcourt d’un tableau, d’une chaîne de caractères, d’un fichier
Soit X un tableau, ou une chaîne de caractère, ou un fichier. Alors si on effectue :
for x in X:
La variable x prendra comme valeurs successives :
— Les éléments de X si X est un tableau (N.B. dans le cas d’un tableau de tableaux, x prendra donc comme valeurs
successives les lignes de ce tableau)
— Les caractères de X si X est une chaîne de caractères
— Les lignes de X si X est un fichier.
2
Liste en compréhension
Soit f une fonction définie sur les entiers. La commande :
[ f(i) for i in range(0,n) ]
crée le tableau [ f(0), f(1), ... f(n-1)].
Par exemple [ i**2 for i in range(0,4)] renvoie [0,1,4,9].
On peut bien sûr utiliser une fonction constante : par exemple [0 for i in range(0,n)] crée un tableau contenant n zéros.
On peut créer des tableaux de tableaux de la sorte :
[ [0 for j in range(0,p)] for i in range(0,n)]
crée un tableau de tableaux de format n × p.
Enfin, il est possible de combiner cette astuce avec la précédente. Par exemple si L est un tableau d’entier,
[ x**2 for x in L] crée le tableau des carrés des éléments de L.
3
Tranches de listes
Soit T un tableau. La commande T[deb: fin: pas] renvoie les éléments de T du numéro deb au numéro fin
(exclu comme toujours), en avançant par pas de pas.
Par exemple, pour récupérer les carrés de nombres impairs jusqu’à n − 1 on peut taper :
[i**2 for i in range(0,n)] [1:n:2]
Mais bien sûr c’est plus simple d’utiliser : [ (2*i+1)**2 for i in range(0,n//2)]
ou même [i**2 for i in range(0,n,2)].
Téléchargement