Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extending list returns None [duplicate]

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?

like image 223
Bob Ebert Avatar asked May 02 '15 04:05

Bob Ebert


People also ask

Does extend () return None?

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.

Why does .append return None?

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.

How do you extend an empty list in Python?

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.

What is the list extend () method?

The extend() method adds the specified list elements (or any iterable) to the end of the current list.


2 Answers

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
like image 96
Bhargav Rao Avatar answered Sep 17 '22 21:09

Bhargav Rao


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)
like image 24
Oleg Gendelman Avatar answered Sep 20 '22 21:09

Oleg Gendelman