TL; DR: Attribute error string has no remove attribute
This exception is raised in Python whenever you try to slice a string using the remove method which is unavailable for strings, but can be invoked on a list.
Reproducing the error
#Case 1 – You try to remove part of a Python string using the remove() function:
my_str = 'I love Python coding'
my_str.remove('coding')
This will throw an exception:
attributeerror 'str' object has no attribute 'remove'
#Case 2 – You try to remove a Python list element by calling the remove function on the element itself:
my_lst = ['I', 'love', 'Python', 'coding']
my_lst[3].remove()
This will also return an attribute error.
Solving the Attribute error
Remember that the remove function corresponds to Python lists and can’t be called on other objects such as strings, dictionaries, tuples and so forth. Failing to follow this rule will cause exceptions in your Python script.
For case #1 – we could slice the string in the following manner:
my_str = 'I love Python coding'
print ( my_str[:my_str.rfind(' ')]) # will return 'I love Python'
For case # 2 – we can get rid of specific list elements using the following code:
my_lst.remove('coding')
print(my_lst) # will return ['I', 'love', 'Python']
Important Note: Make sure to use the help() function on your Python object to make sure you invoke the right methods on objects in your Python script or notebook.