Python del Statement

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
Did you find this article helpful?