Extending list returns None

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?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

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

Method 2

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)


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x