Introdução à programação e aos algoritmos

João Araujo Ribeiro · Capítulo 69 de 103

Páginas do PDF

Introdução à programação e aos algoritmos

5.9 Listas Como Parâmetros

lista2[1] = 42

print(lista1)

print(lista2)

 

■ Programa 5.28: Lista com efeito colateral.

 

E o resultado:

[1, 42, 3]

[1, 42, 3]

Esse efeito colateral é muitas vezes indesejável. A lista lista2,

neste caso, é o que chamamos de aliás, ou apelido de lista1. Uma forma segura de criar uma lista com valores de outra é usar o fatiamento, neste caso falamos de “clonagem”. No exemplo a seguir, a lista2 é um clone da lista1. Qualquer operação sobre os elementos das listas não terá nenhum efeito colateral na outra lista:

lista1 = [1, 2, 3]

lista2 = lista1[:]

lista2[1] = 42

print(lista1)

print(lista2)

 

■ Programa 5.29: Lista fatiada sem efeito colateral.

 

E o resultado:

[1, 2, 3]

[1, 42, 3]

 

5.9 LISTAS COMO PARÂMETROS

Na discussão sobre passagem de parâmetros mencionei que Python tem uma forma peculiar de realizá-la. Vimos que quando é passado um inteiro como parâmetro, qualquer mudança que seja feita dentro da função chamada não afeta a variável que a chamou. Mas isso tem mais a ver com o fato de inteiros serem imutáveis. Veja o Programa 5.30.