Ask Your Question

Revision history [back]

You can not create an entry of a list if it is not already defined.

So, this is not possible:

sage: L = []
sage: L[0] = 5
IndexError: list assignment index out of range

However, you can modify an existing element of a list:

sage: L = [1,2,3]
sage: L[1] = 5
sage: L
[1, 5, 3]

You can also add an element to a list:

sage: L = [1,2,3]
sage: L.append(5)
sage: L
[1, 2, 3, 5]

In particular, the set of indices of a list must be an interval of the form {0,1,2,...,n-1}. Here, you will have a lot of holes. So, you probably need a dictionary instead of a list:

sage: D = dict()
sage: D[123] = 1
sage: D[12] = 42
sage: D
{12: 42, 123: 1}
sage: D[123]
1

You can not create an entry of a list if it is not already defined.

So, this is not possible:

sage: L = []
sage: L[0] = 5
IndexError: list assignment index out of range

However, you can modify an existing element of a list:

sage: L = [1,2,3]
sage: L[1] = 5
sage: L
[1, 5, 3]

You can also add an element to a list:

sage: L = [1,2,3]
sage: L.append(5)
sage: L
[1, 2, 3, 5]

In particular, the set of indices of a list must be an interval of the form {0,1,2,...,n-1}. Here, you will have a lot In your case, the set of holes. indicdes is not contiguous. So, you probably need a dictionary instead of a list:

sage: D = dict()
sage: D[123] = 1
sage: D[12] = 42
sage: D
{12: 42, 123: 1}
sage: D[123]
1