Les structures de données sont un point essentiel de tout langage de programmation
Les diapos qui suivent n'offrent qu'une couverture partielle du sujet
Vous devez lire attentivement et vous référer à la documentation officelle de Python :
str
, tuple
, list
)Les éléments d'une liste peuvent être modifiés (mutable)
Une liste vide peut se déclarer de deux façons
stack = list()
stack = []
stack = ["le", "guépard", "le", "poursuit"]
stack = list('Perl')
stack
append(x)
: ajoute un élément x à la fin de la liste (haut de la pile*)extend([x, y, z])
: ajoute tous les éléments de la liste arg à la fin de la listepop([index])
: supprime et renvoie le dernier élément de la liste ou les index de la liste argument si argindex(x)
: renvoie l'index du premier élément de valeur xcount(x)
: renvoie le nombre de fois où x apparaîtsort()
: trie et modifie la liste, lire la doc pour en savoir plus sur les ordres de tristack = [12, 15, 12, 7, 18]
stack.index(12)
stack.count(12)
stack.sort()
stack
stack.append(23)
stack
stack.append([35, 46])
stack
stack.extend([51, 52])
stack
map()
et filter()
[i ** 2 for i in range(10)]
[i ** 2 for i in range(10) if i % 2 == 0]
[(i, j) for i in range(2) for j in ['a', 'b']]
x = [1, 2, 3]
y = x
y[0] = 4
x
Pour copier une liste il faut utiliser :
x = [1, 2, 3]
y = x[:]
# ou
y = list(x)
tuple
) sont des sequences similaires aux listes sauf qu'elles ne peuvent pas être modifiées (immutable)voyelles = ('a', 'e', 'i', 'o', 'u', 'y')
var = tuple('Perl')
var
x, y, z = (1, 2, 3)
y
lexique = [("maison", "mEz§"), ("serpent", "sERp@")]
for ortho, phon in lexique:
print(phon)
var = (1)
type(var)
var = (1, )
type(var)
La boucle for
est particulièrement adaptée pour parcourir les iterables et donc les listes
for item in voyelles:
print(item)
La fonction enumerate
peut être utile dans certains cas, elle renvoie un tuple
contenant l'indice et la valeur de l'item à l'indice concerné
for i, item in enumerate(voyelles):
print(i, item)
ens1 = {'le', 'guépard', 'le', 'poursuit'}
ens1
ens2 = {"avec", "le", "chandelier", "dans", "la", "cuisine"}
ens1.intersection(ens2)
dict
) sont des structures de données associatives de type clé: valeurLes clés d'un dictionnaire sont uniques, seuls les types immutable peuvent être des clés (doc)
key in d
retourne True si key
est une clé de d
keys()
retourne la liste des clésvalues()
retourne la liste des valeursitems()
retourne la liste des couples clé:valeur (tuple)setdefault(key, default)
retourne la valeur associée à la clé. Si la clé n'existe pas, ajoute la clé associée à defaultd = {'Perl':'Larry Wall', 'Python':'Guido Van Rossum', 'C++':'Bjarne Stroustrup'}
d['Perl']
d['Ruby']
d.get('Ruby')
Dans la liste (voir doc), deux pourront nous intéresser :
defaultdict
defauldict
est similaire à un dict
mais il permet l'autovivification
Son implémentation le rend plus rapide qu'un dictionnaire utilisé avec la fonction setdefault
import collections
lexique = [("couvent", "kuv"), ("couvent", "kuv@")]
dico = collections.defaultdict(list)
for ortho, phon in lexique:
dico[ortho].append(phon)
dico
Counter
est un dictionnaire où les valeurs attendues sont les nombres d'occurences des clés
from collections import Counter
cnt = Counter()
list = ['le', 'guépard', 'le', 'poursuit']
for item in list:
cnt[item] += 1
cnt
Vous rendrez des scripts Python3. Avec des commentaires c'est mieux.
sem_Ef9POe.conll