Licence CC BY-NC-ND Thierry Parmentelat & Arnaud Legout Inria - UCA
Complément - niveau basique¶
Voici un récapitulatif sur l’instruction del selon le contexte dans lequel elle est utilisée.
Sur une variable¶
On peut annuler la définition d’une variable, avec del.
Pour l’illustrer, nous utilisons un bloc try … except … pour attraper le cas échéant l’exception NameError, qui est produite lorsqu’on référence une variable qui n’est pas définie.
# la variable a n'est pas définie
try:
print('a=', a)
except NameError as e:
print("a n'est pas définie")a n'est pas définie
# on la définit
a = 10
# aucun souci ici, l'exception n'est pas levée
try:
print('a=', a)
except NameError as e:
print("a n'est pas définie")The history saving thread hit an unexpected error (OperationalError('attempt to write a readonly database')).History will not be written to the database.
a= 10
# maintenant on peut effacer la variable
del a
# c'est comme si on ne l'avait pas définie
# dans la cellule précédente
try:
print('a=', a)
except NameError as e:
print("a n'est pas définie")a n'est pas définie
Sur une liste¶
On peut enlever d’une liste les éléments qui correspondent à une slice :
# on se donne une liste
l = list(range(12))
print(l)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
# on considère une slice dans cette liste
print('slice=', l[2:10:3])
# voyons ce que ça donne si on efface cette slice
del l[2:10:3]
print("après del", l)slice= [2, 5, 8]
après del [0, 1, 3, 4, 6, 7, 9, 10, 11]
Sur un dictionnaire¶
Avec del on peut enlever une clé, et donc la valeur correspondante, d’un dictionnaire :
# partons d'un dictionaire simple
d = dict(foo='bar', spam='eggs', a='b')
print(d){'foo': 'bar', 'spam': 'eggs', 'a': 'b'}
# on peut enlever une clé avec del
del d['a']
print(d){'foo': 'bar', 'spam': 'eggs'}
On peut passer plusieurs arguments à del¶
# Voyons où en sont nos données
print('l', l)
print('d', d)l [0, 1, 3, 4, 6, 7, 9, 10, 11]
d {'foo': 'bar', 'spam': 'eggs'}
# on peut invoquer 'del' avec plusieurs expressions
# séparées par une virgule
del l[3:], d['spam']
print('l', l)
print('d', d)l [0, 1, 3]
d {'foo': 'bar'}
Pour en savoir plus¶
La page sur l’instruction del dans la documentation Python.