---
page_title: element - Functions - Configuration Language
description: The element function retrieves a single element from a list.
---

# `element` Function

`element` retrieves a single element from a list.

```hcl
element(list, index)
```

The index is zero-based. This function produces an error if used with an
empty list. The index must be a non-negative integer.

Use the built-in index syntax `list[index]` in most cases. Use this function
only for the special additional "wrap-around" behavior described below.

## Examples

```
> element(["a", "b", "c"], 1)
b
```

If the given index is greater than the length of the list then the index is
"wrapped around" by taking the index modulo the length of the list:

```
> element(["a", "b", "c"], 3)
a
```

To get the last element from the list use [`length`](/language/functions/length) to find
the size of the list (minus 1 as the list is zero-based) and then pick the
last element:

```
> element(["a", "b", "c"], length(["a", "b", "c"])-1)
c
```

## Related Functions

* [`index`](/language/functions/index_function) finds the index for a particular element value.
* [`lookup`](/language/functions/lookup) retrieves a value from a _map_ given its _key_.
