Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Tuplas podem ser reordenadas? - Aula 06

Olá mundo!

Estou na Aula 06 - Trabalhando com tuplas e encontrei uma informação que me gerou confusão.

Contexto:

No material da aula há a seguinte afirmação:

"Elas possuem duas características importantes. A primeira é que são ordenadas, assim como as listas. Isso significa que conseguimos ordenar de forma crescente, decrescente, pelo tamanho das palavras ou em ordem alfabética."

Minha dúvida:

Essa explicação sugere que podemos reordenar tuplas, mas quando tentei usar .sort() em uma tupla, recebi um AttributeError. Pelo que pesquisei, tuplas são imutáveis e não podem ser reordenadas diretamente.
O que já tentei:

tupla = (3, 1, 4, 2)
# tupla.sort()  # AttributeError: 'tuple' object has no attribute 'sort'

# Só consegui ordenar criando uma nova tupla:
tupla_ordenada = tuple(sorted(tupla))

A explicação da aula está correta ou há uma confusão entre "ser ordenado" (manter ordem dos elementos) e "poder ordenar/reordenar" (modificar a ordem)?
Sistema: [Linux]
Agradeço a ajuda!

1 resposta
solução!

Oi Gabriel! Em Python, quando dizemos que uma estrutura é ordenada, isso quer dizer apenas que ela mantém a ordem dos elementos do jeito que foram inseridos e que essa ordem pode ser acessada por índice. Isso não significa que a estrutura permita mudar essa ordem depois. No caso das tuplas, elas são ordenadas nesse sentido, mas também são imutáveis, então não podem ser reordenadas diretamente com métodos como .sort(), o que explica o erro que você encontrou. A única forma de “ordenar” uma tupla é usando sorted(), que gera uma nova sequência ordenada sem alterar a tupla original, e então converter o resultado de volta para tupla se for necessário. Então não é um erro no seu raciocínio, e sim uma questão de terminologia no material, que acaba misturando a ideia de manter uma ordem com a possibilidade de modificar essa ordem.