Ask Your Question

Revision history [back]

The method append modifies the list in place.

It does not return anything (or equivalently, it returns None).

It has the side-effect of modifying the list.

Doing d = c.append(0) assigns the result of c.append(0) (i.e., None) to d.

To get a new list consisting of the former value of c with one extra element 0, use:

sage: d = c + [0]

The method append modifies the list in place.

It does not return anything (or equivalently, it returns None).

It has the side-effect of modifying the list.

Doing d = c.append(0) assigns the result of c.append(0) (i.e., None) to d.

To get a new list consisting of the former value of c with one extra element 0, use:

sage: d = c + [0]

Recommended: go through a few of SageMath's thematic tutorials, especially those in the section "Introduction to Python".

The method append modifies the list in place.

It does not return anything (or equivalently, it returns None).

It has the side-effect of modifying the list.

Doing d = c.append(0) assigns the result of c.append(0) (i.e., None) to d.

To get a new list consisting of the former value of c with one extra element 0, use:

sage: d = c + [0]

Recommended: go through a few of SageMath's thematic tutorials, especially those in the section "Introduction to Python".


In a comment after my initial answer, there is a follow up question about Python equivalents of some Mathematica functions for operating on lists: RotateLeft, RotateRight, PadLeft, PadRight (the links point to the Wolfram language reference manual entries for those functions).

Implementing their equivalent in Sage is a good exercise after going through the tutorial.

One could make two versions, one that rotates or pads inplace, one that returns the result.

Here is one way to rotate right one step, inplace:

sage: a = [0, 3, 9, 5, 6, 8, 4]
sage: a[:0] = [a.pop()]
sage: a
[4, 0, 3, 9, 5, 6, 8]

Here is a rotated_right function:

def rotated_right(a, n=1):
    if len(a) < 2 or n % len(a) == 0:
        return a[:]
    n = n % len(a)
    return a[-n:] + a[:-n]

A pad_right function and a padded_right function:

def pad_right(a, n=1)
    if len(a) < n:
        a.extend([0] * (n - len(a)))

def padded_right(a, n=1)
    if len(a) < n:
        return a[:] + [0] * (n - len(a))
    return a[:]

Further recommendations: