How to fill a list

Consider the usage of extend:

>>> l = []
>>> l.extend(range(1, 6))
>>> print l
[1, 2, 3, 4, 5]
>>> l.extend(range(1, 6))
>>> print l
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

If you want to make a function (doing the same):

def fillmylist(l, n):
    l.extend(range(1, n + 1))
l = []
fillmylist(l, 5)

And a bit shorter example of what you want to do:

l = []
l.extend(range(1, 5))
l.extend([0]*3)

print(l)

A function without an explicit return or yield returns None. What you want is

def fill_list(l, n):
    for i in xrange(1, n+1):
        l.append(i)
    return l

but that's very unpythonic. You'd better just call range(1, n+1) which also returns the list [1,2,3,4,5] for n=5:

def fill_list(n):
    return range(1, n+1)

Tags:

Python

List

Fill