Please consider the following code:
i = [1, 2, 3, 5, 8, 13]
j = []
k = 0
for l in i:
j[k] = l
k += 1
print j
The output (Python 2
Do j.append(l)
instead of j[k] = l
and avoid k
at all.
j.append(l)
Also avoid using lower-case "L's" because it is easy for them to be confused with 1's
Maybe you need extend()
i=[1,3,5,7]
j=[]
j.extend(i)
Your other option is to initialize j
:
j = [None] * len(i)
j
is an empty list, but you're attempting to write to element [0]
in the first iteration, which doesn't exist yet.
Try the following instead, to add a new element to the end of the list:
for l in i:
j.append(l)
Of course, you'd never do this in practice if all you wanted to do was to copy an existing list. You'd just do:
j = list(i)
Alternatively, if you wanted to use the Python list like an array in other languages, then you could pre-create a list with its elements set to a null value (None
in the example below), and later, overwrite the values in specific positions:
i = [1, 2, 3, 5, 8, 13]
j = [None] * len(i)
#j == [None, None, None, None, None, None]
k = 0
for l in i:
j[k] = l
k += 1
The thing to realise is that a list
object will not allow you to assign a value to an index that doesn't exist.
You could also use a list comprehension:
j = [l for l in i]
or make a copy of it using the statement:
j = i[:]