The Python del
keyword is used to delete objects. Its syntax is:
# delete obj_name
del obj_name
Here, obj_name can be variables, user-defined objects, lists, items within lists, dictionaries etc.
Example 1: Delete an user-defined object
class MyClass:
a = 10
def func(self):
print('Hello')
# Output:
print(MyClass)
# deleting MyClass
del MyClass
# Error: MyClass is not defined
print(MyClass)
In the program, we have deleted MyClass using del MyClass statement.
Example 2: Delete variable, list, and dictionary
my_var = 5
my_tuple = ('Sam', 25)
my_dict = {'name': 'Sam', 'age': 25}
del my_var
del my_tuple
del my_dict
# Error: my_var is not defined
print(my_var)
# Error: my_tuple is not defined
print(my_tuple)
# Error: my_dict is not defined
print(my_dict)
Example 3: Remove items, slices from a list
The del
statement can be used to delete an item at a given index. It can also be used to remove slices from a list.
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# deleting the third item
del my_list[2]
# Output: [1, 2, 4, 5, 6, 7, 8, 9]
print(my_list)
# deleting items from 2nd to 4th
del my_list[1:4]
# Output: [1, 6, 7, 8, 9]
print(my_list)
# deleting all elements
del my_list[:]
# Output: []
print(my_list)
Example 4: Remove a key:value pair from a dictionary
person = { 'name': 'Sam',
'age': 25,
'profession': 'Programmer'
}
del person['profession']
# Output: {'name': 'Sam', 'age': 25}
print(person)
Recommended Reading: Python Dictionary
del With Tuples and Strings
Note: You can't delete items of tuples and strings in Python. It's because tuples and strings are immutables; objects that can't be changed after their creation.
my_tuple = (1, 2, 3)
# Error: 'tuple' object doesn't support item deletion
del my_tuple[1]
However, you can delete an entire tuple or string.
my_tuple = (1, 2, 3)
# deleting tuple
del my_tuple