Python list supports an inbuilt method
append()
that can add a new element to the list object. The append() method is exclusive to the list object. If we try to call the append() method on an str or string object, we will receive the
AttributeError: 'str' object has no attribute 'append'
Error.
In this Python guide, we will discuss this error in detail and learn how to debug this error. We will also walk through an example where we demonstrate this error with a common example scenario. So let's begin with the Error Statement
Python Problem: AttributeError: 'str' object has no attribute 'append'
The Error Statement
AttributeError: 'str' object has no attribute 'append'
is divided into two parts
Exception Type
and
Error Message,
separated with a colon
:
.
- Exception Type ( AttributeError )
- Error Message ( 'str' object has no attribute 'append' )
1. AttributeError
AttributeError is a Python standard Exception, it is raised in a program when we call an undefined or unsupported property or method on a Python object.
2. 'str' object has no attribute 'append'
AttributeError:
'str' object has no attribute 'append'
is the error message specifying that we are trying to call the append() method on a Python string value. All the Python string values are defined inside the
str
object so when we call a property or method on a string value or object, we receive the AttributeError with 'str' object has no attribute message.
Example
# string
letters = 'a,b,c,d,e,f'
letters.append(',g')
print(letters)
Output
Traceback (most recent call last):
File "main.py", line 4, in <module>
letters.append(',g')
AttributeError: 'str' object has no attribute 'append'
Break the code
In the above example, we are encountering this error because to add a new value to our string "
letters
" We are using the
append()
method. As Python string object does not support
append()
method, it threw an AttributeError with 'str' object has no attribute 'append' message.
Common Example Scenario
append() is a list method and is used to add a new element value at the end of an existing list. And if we want to add a new character at the end of our existing we can not use the append method. Instead, we need to use the
+
symbol as a concatenation operator.
Error Example
# string
sentence = "The quick brown fox jumps over the lazy"
# add dog at the end of the sentence using append
sentence.append("dog")
print(sentence )
Output
Traceback (most recent call last):
File "main.py", line 5, in <module>
sentence.append("dog")
AttributeError: 'str' object has no attribute 'append'
The output error for the above example is what we expected. In this example, we tried to add the "dog" string at the end of our
sentence
string using
append()
method. But Python string does not support append, and we received the error.
Solution If you ever encounter such a situation where you need to append a new character at the end of a string value, there you can either use the concatenation operation.
Example
# string
sentence = "The quick brown fox jumps over the lazy"
# add dog at the end of the sentence using concetination
sentence = sentence + " dog"
print(sentence )
Output
The quick brown fox jumps over the lazy dog
The concatenation operation will only work if the new value you are adding is also a string. If the new value has a different data type, there you first need to convert that type into a string using
str()
function or you can use the string formatting.
Conclusion
In this article, we discussed the “AttributeError: ‘str’ object has no attribute ‘append’" Error. The error is raised in a Program when we apply the append method on a String object. String objects do not support the append() method and return an error when the programmer applies it. To add a new value to a string, we can use string concatenation or string formatting.
If you are still getting this error, you can share your code in the comment section with the query. We will try to help you in debugging.
People are also reading:
- Python TypeError: 'float' object is not iterable Solution
- Online Python Compiler
- Python AttributeError: 'numpy.ndarray' object has no attribute 'append' Solution
- Image Transformations in Python
- Python TypeError: 'tuple' object does not support item assignment Solution
- Threads for IO Tasks in Python
- Python AttributeError: ‘list’ object has no attribute ‘split’ Solution
- Encrypt and Decrypt Files in Python
- Python TypeError: Name() takes no arguments Solution
- What is a constructor in Python?
Leave a Comment on this Post