3. Les piles
Principe du LIFO: Last In First Out
Créer la pile (liste) :
pile=[]
Pour empiler les éléments:
pile.append(element)
Pour dépiler un élément:
element=pile.pop()
4. Les files
Principe du FIFO: First In First Out
Créer la file (liste) :
file=[]
Pour enfiler un éléments
file.append(element)
Pour défiler un élément:
element=pile.popleft()
6. Tuple ?
Même principe que les n-uplets en mathématiques.
Même déclaration que les listes, mais avec parenthèses
Exemple:
tuple=(2, 3)
Même méthodes d’accès que les listes ( par index )
Sont immuables !
N’ont pas de méthodes
7. À quoi bon ?!
Ils sont plus rapides que les listes.
Peuvent servir comme clés des dictionnaires
Sont sémantiquement hétérogènes
Exemple:
marque_page = (42, 11)
# numéro de page, numéro de ligne
Sont utilisées pour formater les strings (lui préférer la méthode format):
S= “Salut %s agé de %d” % (nom, age)
8. Listes et tuples
Passage d’un tuple à une liste:
L=list(myTuple)
Passage d’un tuple à une liste:
myTuple=tuple(list)
10. Set ?
Ensemble au sens mathématique: collection d’objets sans doublons
Ne sont pas ordonnés et donc pas d’accès par index
On peut ittérer les élements : for x in set
Existe en version immuable frozenset
Déclaration d’un set vide: set={}
11. Quelques méthodes des Set
len(set) : retourne le cardinal du set
x in set retourne True si x ∈ set, False sinon
set.isdisjoint(set2) retourne True si l’intersection de set et set2 est vide
set.issubset(set2) (ou set <= set2) retourne True si set ⊂ set2
set.union(set2) (ou set | set2) : retourne set ∪ set2
set.intersection(set2) (ou set & set2) : retourne set ∩ set2
set. difference(set2) ( ou set – set2)
set. symmetric_difference(set2) (ou set ^ set2)
13. Dictionnaire ?
Tableaux associatifs: l’accès se fait par clés
Ensemble de couples (key, value)
La clé doit être de type immuable (str, tuple, frozenset)
Création d’un dictionnaire vide:
Déclaration d’un dictionnaire initialisé:
Dict={key1: value1, key2: value2 ….}
Accès à la valeur value associée à la clé key;
Dict={}
Dict[key]
Ajout d’un élément new Key , newVal:
Dict[newKey]=newVal
14. Dictionnaire
del(dict[key]): Suppression d’un élément de clé key:
dict.values(): retourne la liste des valeurs du dictionnaire
dict.keys(): retourne la liste des clés du dictionnaire
dict.clear(): supprime tous les éléments du dictionnaire.
dict.items(): retourne les élements du dictionnaire (tuples (clé, valeur))
dict.has_key(key): retourne True si la clé key appartient au dict
len(dict): retourne le nombre d’éléments du dictionnaire
16. Fonctions
Déclaration en utilisant le mot clé def suivi du nom de la fonction, suivi des
paramètres entre parenthèses.
On peut éventuellement retourner une valeur en utilisant le mot clé return
La première chaine de caractères dite de documentation est ignorée à
l’exécution, elle décrit la fonction.
Exemple:
def factoriel(n):
" calcule et retourne n! "
facto=1
for i in xrange(2, n+1): #pour i allant de 2 à n
facto*=i
#facto=facto * i
return facto
17. Fonctions: les paramètres
Les paramètres passent par référence, c’est-à-dire que les changement
opérés sur ces derniers dans le corps de la fonction sont maintenus.
Pour faire un passage par valeur, il faut changer la référence du
paramètre dans le corps de la fonction.
On peut faire passer une fonction comme paramètre.
18. Fonctions: les paramètres par défaut
Python supporte les valeurs par défaut des paramètres des fonctions, càd
les valeurs que prennent ces valeurs si on ne les spécifie pas à l’appel.
Exemple:
def test(a, b=0):
print a,b
test(2,3) # affiche 2, 3
test (2)
# affiche 2, 0
Toute modification sur ces paramètres est gardée pour les prochains
appels.
19. Generators
Sont des fonctions qui renvoient des Iterators
Un itterator est un est un objet qui contient la méthode next()
On peut parcourir ses élements avec la boucle for.
Un generator est une fonction où on utilise le mot clé yield au lieu de
return.
Le yield a un fonctionnement similaire au return, sauf qu’il mémorise
l’état de la fonction.
Au prochain appel de la fonction, elle continuera son execution du
dernier point de sauvegarde du yield.
20. Fonction Lambda
Fonction anonyme ( sans nom), qui se limite à une seule expression.
Evite de définir une fonction qui n’est utilisé qu’une fois dans le code.
Souvent passée en paramètre d’une fonction (sort, map …).
Synthaxe:
lambda paramètre1,….,paramètreN : <expression à retourner>
Exemple:
Lambda x, y: True if x % y == 0 else False