Da trilha de Python Este conceito ainda não saiu como card do dia. ir para o card de hoje

Python Coleções Básico

Tuplas e desempacotamento

Tuplas são sequências imutáveis em Python, ou seja, depois de criadas não podem ser alteradas. Elas são definidas com parênteses e vírgulas, e são úteis para agrupar dados relacionados que não devem mudar, como coordenadas ou informações de configuração.

O desempacotamento permite atribuir os elementos de uma tupla a variáveis individuais de forma concisa. Por exemplo, x, y = (1, 2) coloca 1 em x e 2 em y. Isso funciona para qualquer iterável, não apenas tuplas.

O operador * pode ser usado para capturar múltiplos elementos em uma lista durante o desempacotamento. Por exemplo, a, *b = (1, 2, 3) faz a = 1 e b = [2, 3]. Isso é chamado de desempacotamento estendido.

Uma aplicação clássica é a troca de variáveis sem variável temporária: a, b = b, a. Como as tuplas são imutáveis, essa operação cria uma nova tupla à direita e a desempacota à esquerda, trocando os valores de forma elegante e segura.

Pontos-chave

  • Tuplas são imutáveis: não é possível modificar, adicionar ou remover elementos após a criação.
  • O desempacotamento atribui elementos de um iterável a variáveis em uma única linha.
  • O operador * captura múltiplos elementos em uma lista durante o desempacotamento.
  • A troca de variáveis a, b = b, a é feita sem variável auxiliar usando tuplas.
  • Tuplas podem ser usadas como chaves de dicionário, pois são hashable (imutáveis).
tuplas_desempacotamento.py
def main():
    # Criando uma tupla
    ponto = (3, 4)
    print(f"Ponto: {ponto}")

    # Desempacotamento simples
    x, y = ponto
    print(f"x = {x}, y = {y}")

    # Tentativa de modificação (erro)
    try:
        ponto[0] = 10
    except TypeError as e:
        print(f"Erro ao modificar tupla: {e}")

    # Desempacotamento com *resto
    numeros = (1, 2, 3, 4, 5)
    primeiro, *meio, ultimo = numeros
    print(f"Primeiro: {primeiro}, Meio: {meio}, Último: {ultimo}")

    # Troca de variáveis
    a, b = 10, 20
    print(f"Antes: a = {a}, b = {b}")
    a, b = b, a
    print(f"Depois: a = {a}, b = {b}")

if __name__ == "__main__":
    main()

Exercícios

  1. 1
    Fácil

    Desempacotando uma tupla de cores

    Dada a tupla cores = ('vermelho', 'verde', 'azul'), desempacote seus elementos em três variáveis cor1, cor2 e cor3 e imprima cada uma em uma linha separada.

    Resolver
  2. 2
    Médio

    Usando *resto para separar primeiro e último

    Dada a tupla valores = (10, 20, 30, 40, 50), desempacote o primeiro elemento em primeiro, o último em ultimo e todos os elementos do meio em uma lista chamada meio. Imprima primeiro, meio e ultimo nessa ordem.

    Resolver
  3. 3
    Desafio

    Troca de variáveis e desempacotamento em uma função

    Escreva uma função min_max que recebe uma lista de números e retorna uma tupla (minimo, maximo). Em seguida, use desempacotamento para atribuir o resultado a duas variáveis minimo e maximo, e depois troque os valores dessas variáveis usando a, b = b, a. Imprima os valores antes e depois da troca.

    Resolver

Continue estudando