Médio Python
Ordenação e cópia
Enunciado
Dada a lista valores = [5, 2, 9, 1, 7], crie uma cópia chamada copia usando copy(). Ordene copia com sort() e imprima tanto a lista original quanto a cópia ordenada. Em seguida, use sorted() na lista original e imprima o resultado.
Requisitos
- Usar
copy()para criar a cópia. - Usar
sort()na cópia para ordená-la. - Usar
sorted()na lista original e imprimir o resultado. - A lista original deve permanecer inalterada.
Código inicial
valores = [5, 2, 9, 1, 7]
# Seu código aqui
Saída esperada
Original: [5, 2, 9, 1, 7]
Cópia ordenada: [1, 2, 5, 7, 9]
Sorted na original: [1, 2, 5, 7, 9]
Ver dica
copy() cria uma nova lista independente. sort() modifica a lista, sorted() retorna uma nova.
Mostrar solução
valores = [5, 2, 9, 1, 7]
copia = valores.copy() # cópia rasa
copia.sort() # ordena a cópia no local
print("Original:", valores)
print("Cópia ordenada:", copia)
print("Sorted na original:", sorted(valores))
Passo a passo
- Criamos
valorescom cinco números. valores.copy()cria uma nova lista com os mesmos elementos.copia.sort()ordena a cópia em ordem crescente, modificando-a.- Imprimimos a lista original, que permanece
[5, 2, 9, 1, 7]. - Imprimimos a cópia ordenada.
sorted(valores)retorna uma nova lista ordenada sem alterarvalores.
Por que funciona
copy() evita que as duas variáveis apontem para o mesmo objeto. sort() é um método que altera a lista no local e retorna None; sorted() é uma função que cria uma nova lista.
Erros comuns
- Fazer
copia = valorese depoiscopia.sort(): isso modificaria a lista original também, pois ambas referenciam o mesmo objeto. - Tentar usar
print(valores.sort()): comosort()retornaNone, a saída seriaNone.
Outra forma de resolver
Poderia usar copia = valores[:] para criar a cópia, que é equivalente a copy().
Saída esperada
Original: [5, 2, 9, 1, 7]
Cópia ordenada: [1, 2, 5, 7, 9]
Sorted na original: [1, 2, 5, 7, 9]