# list

{% dynamic setvar source_file "src/main/java/net/starlark/java/eval/StarlarkList.java" %} {% dynamic setvar version "7.6.0" %} {% dynamic setvar original_path "/rules/lib/core/list" %} {% include "_buttons.html" %} The built-in list type. Example list expressions:

    x = [1, 2, 3]

Accessing elements is possible using indexing (starts from `0`):

    e = x[1]   # e == 2

Lists support the `+` operator to concatenate two lists. Example:

    x = [1, 2] + [3, 4]   # x == [1, 2, 3, 4]
    x = ["a", "b"]
    x += ["c"]            # x == ["a", "b", "c"]

Similar to strings, lists support slice operations:

    ['a', 'b', 'c', 'd'][1:3]   # ['b', 'c']
    ['a', 'b', 'c', 'd'][::2]  # ['a', 'c']
    ['a', 'b', 'c', 'd'][3:0:-1]  # ['d', 'c', 'b']

Lists are mutable, as in Python.

## Members

- append
- clear
- extend
- index
- insert
- pop
- remove

## append

    None list.append(item)

Adds an item to the end of the list.

### Parameters

Parameter | Description
--- | ---
`item` | required Item to add at the end.

## clear

    None list.clear()

Removes all the elements of the list.

## extend

    None list.extend(items)

Adds all items to the end of the list.

### Parameters

Parameter | Description
--- | ---
`items` | required Items to add at the end.

## index

    int list.index(x, start=None, end=None)

Returns the index in the list of the first item whose value is x. It is an error if there is no such item.

### Parameters

Parameter | Description
--- | ---
`x` | required The object to search.
`start` | int; or `None`; default is `None` The start index of the list portion to inspect.
`end` | int; or `None`; default is `None` The end index of the list portion to inspect.

## insert

    None list.insert(index, item)

Inserts an item at a given position.

### Parameters

Parameter | Description
--- | ---
`index` | required The index of the given position.
`item` | required The item.

## pop

    unknown list.pop(i=-1)

Removes the item at the given position in the list, and returns it. If no `index` is specified, it removes and returns the last item in the list.

### Parameters

Parameter | Description
--- | ---
`i` | int; or `None`; default is `-1` The index of the item.

## remove

    None list.remove(x)

Removes the first item from the list whose value is x. It is an error if there is no such item.

### Parameters

Parameter | Description
--- | ---
`x` | required The object to remove.