list.insert()
¶We can use the function list.insert()
in order to insert elements into a list. Consider the following list:
L = [42, 43, 45, 46, 47]
Suppose we want to insert 99
between 43
and 45
. In order to do that, we use list.insert()
. L.insert(ind, e)
means "insert e
before index ind
in the list L
"
L = [42, 43, 45, 46, 47]
L.insert(2, 99)
print(L)
[42, 43, 99, 45, 46, 47]
We inserted 99
before 45
, which used to be at index 4.
How can we insert an element at the beginning? Insert before index 0:
L = [42, 43, 45, 46, 47]
L.insert(0, 9)
print(L)
[9, 42, 43, 45, 46, 47]
How about inserting an element at the very end? Technically, any large-enough index will work:
L = [42, 43, 45, 46, 47]
L.insert(10000000, 99)
print(L)
[42, 43, 45, 46, 47, 99]
"Insert before index 10000000" just means "insert at the end" here. It's much nicer, however, to insert before index len(L)
. The index len(L)-1
is the index of the last element in the list (the indices are 0, 1, 2, 3..., len(L)
, for a total of len(L)
indices). That means that inserting before index len(L)
is the same as inserting the element at the very end:
L = [42, 43, 45, 46, 47]
L.insert(len(L), 99)
print(L)
[42, 43, 45, 46, 47, 99]
list.append()
¶"Inserting at the end of the list" has a name -- appending. We can (and should) use list.append
to append to the end of a list.
L = [42, 43, 45, 46, 47]
L.append(99)
print(L)
[42, 43, 45, 46, 47, 99]
list.index()
¶Suppose we want to find the index of a particular element of L
-- to find the location of the element equal to e
in the list L
. This can be done using list.index()
.
L = [4, 42, 35, 20]
L.index(20)
3
20 is found at index 3 of L
. We can check this:
L[L.index(20)]
20
Of course, this would work for any element found in the list L
, since L.index(e)
is the index of an element equal to e
!
L[L.index(4)]
4
What if the list L
has more than one element that is equal to e
? In that case, L.index(e)
will return the smallest index of an element in L
equal to e
:
L = [4, 5, 7, 5, 20]
L.index(5)
1
What if the element is not found in L
? In that case, we get an error, and the program crashes (unless we use exception handling, which we haven't covered...)
L.index(42)
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-12-71974f648f1f> in <module>() ----> 1 L.index(42) ValueError: 42 is not in list
in
, not in
¶We can use in
and not in
in order to check whether an element equal to e
is in L
or not.
e in L
is True
iff one of the elements of L
is equal to e
e not in L
is True
iff none of the elements of L
are equal to e
Of course, e not in L
and not (e in L)
are just the same.
Here are a few examples:
4 in [5, 6, 10]
False
3 in [10, 3, 1]
True
3 not in [10, 3, 1]
False
We are now in a position to try to find the index of an element which may or may not be present in L
:
L = [10, 5, 4, 20, 4]
e = 3
if e in L:
print("The index of the first occurence of", e, "in L is", L.index(e))
else:
print(e, "is not in L")
3 is not in L
L = [10, 5, 4, 20, 4]
e = 4
if e in L:
print("The index of the first occurence of", e, "in L is", L.index(e))
else:
print(e, "is not in L")
The index of the first occurence of 4 in L is 2