• Definição: Coleção ordenada, imutável (não pode ser alterada após a criação) e que permite elementos duplicados.

  • Quando usar:

    • Quando a ordem dos itens é importante e os itens não devem ser modificados (constantes).
    • Como chaves em dicionários (já que são imutáveis).
    • Para retornar múltiplos valores de uma função.
    • Para dados que não devem ser acidentalmente alterados.
  • Principais Métodos/Operações:

    • Criação: minha_tupla = () ou minha_tupla = (1, 2, "três"). Uma tupla com um único item requer uma vírgula: (item,).
    • Acesso: minha_tupla[indice], minha_tupla[inicio:fim] (slicing) - semelhante às listas.
    • Imutabilidade: Não possui métodos como append(), insert(), remove(), sort(), etc. Se precisar "modificar" uma tupla, você deve criar uma nova.
    • Outros: len(), count(), index().
    coordenadas = (10, 20, 30)
    print(f"Tupla original: {coordenadas}") # Saída: (10, 20, 30)
    
    # Acessar elementos:
    print(f"Elemento no índice 0: {coordenadas[0]}") # Saída: 10
    
    # Tentar modificar gera erro:
    # coordenadas[0] = 5  # TypeError: 'tuple' object does not support item assignment
    
    # Desempacotamento de tuplas:
    x, y, z = coordenadas
    print(f"x: {x}, y: {y}, z: {z}") # Saída: x: 10, y: 20, z: 30
    
    # Retorno de múltiplos valores de uma função:
    def get_nome_idade():
        return "Alice", 30 # Retorna uma tupla implicitamente
    nome, idade = get_nome_idade()
    print(f"{nome} tem {idade} anos.") # Saída: Alice tem 30 anos.