---
page_title: formatlist function reference
description: |-
  The `formatlist` function applies a specification to format values and produce a list of strings. 
---

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
> [!IMPORTANT]  
> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com.
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

# `formatlist` Function

`formatlist` produces a list of strings by formatting a number of other
values according to a specification string.

```hcl
formatlist(spec, values...)
```

The specification string uses
[the same syntax as `format`](/packer/docs/templates/hcl_templates/functions/string/format#specification-syntax).

The given values can be a mixture of list and non-list arguments. Any given
lists must be the same length, which decides the length of the resulting list.

The list arguments are iterated together in order by index, while the non-list
arguments are used repeatedly for each iteration. The format string is evaluated
once per element of the list arguments.

## Examples

```shell-session
> formatlist("Hello, %s!", ["Valentina", "Ander", "Olivia", "Sam"])
[
  "Hello, Valentina!",
  "Hello, Ander!",
  "Hello, Olivia!",
  "Hello, Sam!",
]
> formatlist("%s, %s!", "Salutations", ["Valentina", "Ander", "Olivia", "Sam"])
[
  "Salutations, Valentina!",
  "Salutations, Ander!",
  "Salutations, Olivia!",
  "Salutations, Sam!",
]
```

## Related Functions

- [`format`](/packer/docs/templates/hcl_templates/functions/string/format) defines the specification syntax used by this
  function and produces a single string as its result.
