Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

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.