I want to add a string to a list:
list1 = ['hi','how','are','you','googl']
ok = 'item22'
list1 = list1.extend(ok)
but it prints None
. Why is that?
Python List extend() Returns None. The return value of the extend() method is None . The return value of the extend() method is not a list with the added elements.
append() is an in-place operation, meaning that it modifies the state of the list , instead of returning a new list object. All functions in Python return None unless they explicitly return something else. The method a. append() modifies a itself, which means that there's nothing to return.
You can add elements to an empty list using the methods append() and insert() : append() adds the element to the end of the list. insert() adds the element at the particular index of the list that you choose.
The extend() method adds the specified list elements (or any iterable) to the end of the current list.
The function extend
is an in-place function i.e. It will make the changes to the original list itself. From the docs
Extend the list by appending all the items in the given list; equivalent to a[len(a):] = L.
Hence you do not need to re-assign it back to the list variable.
You can do
list1 = ['hi','how','are','you','googl']
ok = 'item22'
list1.extend([ok]) # Notice brackets here
Then when you print list
it will print
['hi','how','are','you','googl','item22']
Better way
Using append
as mentioned below is the better way to do it.
list1 = ['hi','how','are','you','googl']
ok = 'item22'
list1.append(ok) # Notice No brackets here
There is another way, using module numpy will do the work https://pypi.org/project/numpy/
Specific in your example it will be look like this:
import numpy as np
list1 = ['hi','how','are','you','googl']
ok = 'item22'
list1 = list(np.append(list1, [ok]))
print(list)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With