a, b, *rest = t
Built-in Data Structures

Meaning

Unpacks an iterable, assigning the first two items to variables a and b, and collects the remaining items into a list assigned to rest.

Primary Function

Unpacking iterable elements into individual variables while capturing the remainder as a list.

Communicative Purpose

To destructure an iterable when you need the first two elements separately and want to collect the rest for further processing.

Pattern

{var1}, {var2}, *{rest} = {iterable}

Core Structure

{var1}, {var2}, *{rest} = {iterable}

Função primária

Unpacking iterable elements into individual variables while capturing the remainder as a list.

Propósito comunicativo

To destructure an iterable when you need the first two elements separately and want to collect the rest for further processing.

Situações de gatilho

When processing sequences where only the first few elements are needed individually and the remainder should be retained as a list, e.g., splitting a list into head, second element, and tail.

Contextos

Data processing loops, function argument unpacking, parsing structured tuples/lists, algorithmic loops that require head/tail decomposition.

Padrão

{var1}, {var2}, *{rest} = {iterable}

Estrutura central

{var1}, {var2}, *{rest} = {iterable}

Slots de substituição

{var1}: first variable, {var2}: second variable, {rest}: variable for remainder list, {iterable}: any iterable expression.

Colocados típicos

  • list
  • tuple
  • range
  • string
  • zip
  • enumerate

Substituições comuns

  • a
  • b
  • *rest = t
  • x
  • y
  • *zs = seq
  • head
  • *middle
  • tail = seq (different pattern).

Erros comuns

Applying *rest to a non‑iterable, omitting the required comma before the starred variable, expecting the starred variable to be a tuple (it is a list), raising ValueError when the iterable is too short.

Similar / contraste

Similar: a, *rest = t (head‑rest split). Contrasting: a, b, c = t (fixed‑length unpack), *rest, = t (capture all as list).

Interferências

May be confused with the *args syntax in function calls or with tuple unpacking; ensure the starred variable is preceded by a comma when it is not the first element.

Família do chunk

  • unpacking_assignment

Nuance

The starred variable always receives a list, regardless of the original iterable type; if there are fewer items than the preceding variables, a ValueError is raised.

Efeito pragmático

Signals the intent to process the first two elements separately while keeping the remainder available for batch operations.

Dica de memória

Think ‘a, b, *rest = data’ as ‘take first two, grab the rest’.

Nota

The starred variable collects the remaining items as a list; insufficient items for the leading variables trigger a ValueError.

Upgrade path

Learn extended unpacking patterns (e.g., *head, *mid, *tail) and nested unpacking scenarios.

Frequência: HighFormulaicidade: Semi-fixedTipo de construção: unpacking assignment with starred expressionPrioridade de aquisição: Active recallPrioridade de output: BothTag de espaçamento: Short-term

Log in to save chunks.