[x for x in items if x > 0]
Built-in Data Structures

Meaning

A list comprehension builds a new list by iterating over an iterable, applying an optional condition, and expressing the result in a single readable line. It eliminates the need for explicit loops and temporary accumulator variables, reducing boilerplate code. Use it when you want to filter or transform items from a collection in a concise, Pythonic way.

Primary Function

Data transformation and filtering

Communicative Purpose

Enables concise filtering and transformation of iterables without explicit loops.

Pattern

[expression for item in iterable if condition]

Core Structure

[... for ... in ... if ...]

Função primária

Data transformation and filtering

Propósito comunicativo

Enables concise filtering and transformation of iterables without explicit loops.

Situações de gatilho

Data processing: filtering out negative values from a list of numbers. Web scraping: extracting anchor texts longer than five characters from scraped HTML tags. Scientific computing: selecting positive measurements from sensor readings.

Contextos

Python data processing, algorithm implementation, functional-style programming within Python scripts

Padrão

[expression for item in iterable if condition]

Estrutura central

[... for ... in ... if ...]

Slots de substituição

expression: result value, item: loop variable, iterable: source collection, condition: boolean filter

Colocados típicos

  • Built-in functions (sum
  • max
  • any)
  • nested list comprehensions
  • generator expressions

Substituições comuns

  • Using filter() and map() functions
  • explicit for-loops with append()

Erros comuns

Using list comprehensions for side effects (e.g., printing) instead of building a list — causes unintended None values and wasted computation. Over‑nesting multiple if conditions makes the expression hard to read and debug — leads to maintenance errors. Forgetting the square brackets creates a generator expression instead of a list — results in lazy iteration when a list is expected, causing type errors later.

Similar / contraste

Generator expressions (use parentheses, lazy evaluation) vs. List comprehensions (eager evaluation, stored in memory). Explicit loops are more verbose but allow complex logic.

Interferências

Coming from functional languages: assuming list comprehensions are lazy like Haskell’s list comprehensions → Python list comprehensions are eager and produce the whole list in memory. Coming from SQL: expecting the clause order to be WHERE then SELECT → In Python the expression (SELECT) comes first, then the iterable (FROM), then the condition (WHERE).

Família do chunk

  • list comprehension
  • filter
  • generator expression

Nuance

Avoid using list comprehensions for complex logic with multiple nested conditions or side effects, as readability suffers and debugging becomes difficult. For large datasets, list comprehensions allocate the entire result list in memory; prefer generator expressions to reduce memory footprint. When the iterable is not a list or tuple (e.g., a generator), the comprehension will exhaust it, which may be undesirable if the iterable needs to be reused.

Efeito pragmático

Enables concise, readable filtering of iterables without writing explicit loops.

Dica de memória

Like a fishing net that keeps only the fish larger than a set size, letting the smaller ones slip through.

Nota

A concise way to filter items in an iterable using a condition.

Upgrade path

generator expressions for lazy evaluation

Frequência: Very highFormulaicidade: Semi-fixedTipo de construção: list comprehensionPrioridade de aquisição: Automatic productionPrioridade de output: BothTag de espaçamento: ImmediateIdioma?: Sim

Log in to save chunks.