Fatiamento em [[Linguagem de programação Python|Python]] é uma técnica poderosa para extrair partes de sequências (como listas, strings e tuplas) usando a notação `[start:stop:step]`. Essa notação cria uma nova sequência contendo os elementos no intervalo especificado. * **`start`**: Índice do primeiro elemento a ser incluído na fatia (inclusivo). Se omitido, o padrão é 0 (início da sequência). * **`stop`**: Índice do primeiro elemento a _não_ ser incluído na fatia (exclusivo). Se omitido, o padrão é o comprimento da sequência (até o final). * **`step`**: O intervalo entre os elementos incluídos na fatia. Se omitido, o padrão é 1. Pode ser negativo para percorrer a sequência de trás para frente. **Exemplos:** ```python l = [10, 20, 30, 40, 50, 60] print(l[:2]) # Do início até o índice 2 (exclusivo): [10, 20] print(l[2:]) # Do índice 2 até o final: [30, 40, 50, 60] print(l[::2]) # Elementos em índices pares: [10, 30, 50] print(l[::-1]) # Inverte a lista: [60, 50, 40, 30, 20, 10] print(l[1:5:2]) # Do índice 1 ao 5 (exclusivo), pulando de 2 em 2: [20, 40] s = "Python" print(s[1:4]) # Fatiando uma string: "yth" print(s[::-1]) # Invertendo a string: "nohtyP" ``` **Fatiamento com Índices Negativos:** Índices negativos contam a partir do final da sequência. `-1` é o último elemento, `-2` o penúltimo, e assim por diante. ```python l = [10, 20, 30, 40, 50, 60] print(l[:-1]) # Todos os elementos, exceto o último: [10, 20, 30, 40, 50] print(l[-3:]) # Os últimos três elementos: [40, 50, 60] ``` # A Função `slice()`: A função `slice()` cria um objeto slice que pode ser usado para fatiar sequências. Isso é útil quando você precisa reutilizar a mesma fatia várias vezes ou quando os índices de fatiamento são determinados dinamicamente. ```python fatia = slice(1, 4) # Cria um slice do índice 1 ao 4 (exclusivo) l = [10, 20, 30, 40, 50, 60] print(l[fatia]) # Aplica o slice à lista: [20, 30, 40] inicio = 2 fim = 5 fatia_dinamica = slice(inicio, fim) print(l[fatia_dinamica]) # Aplica o slice dinâmico: [30, 40, 50] ``` # Observações Importantes: * O fatiamento sempre retorna uma _nova_ sequência. No caso de strings, isso significa que uma nova string é criada (strings são imutáveis em [[Linguagem de programação Python|Python]]). * Se `start` ou `stop` estiverem fora dos limites da sequência, [[Linguagem de programação Python|Python]] ajusta os valores para os limites válidos. Fatiamento é uma ferramenta fundamental em [[Linguagem de programação Python|Python]] para manipular sequências de dados de forma eficiente e concisa. :: **Referência** :: [Built-in Functions - Slice - Python 3.11.0 Documentation](https://docs.python.org/3/library/functions.html#slice)