Seção 6.0–6.3 — Criando, acessando, copiando e medindo listas
Listas são um tipo de variável que permite o armazenamento de vários valores, acessados por um índice. Uma lista pode conter zero ou mais elementos de um mesmo tipo ou de tipos diversos, podendo inclusive conter outras listas. O tamanho de uma lista é igual à quantidade de elementos que ela contém.
Podemos imaginar uma lista como um edifício de apartamentos: o índice é o andar, o zero é o térreo, o primeiro andar é o 1, e assim por diante. A lista mais simples é a lista vazia:
Os colchetes [] após o símbolo de igualdade indicam que L é uma lista. Vejamos como criar uma lista Z com 3 elementos:
A lista Z foi criada com três elementos: 15, 8 e 9. O tamanho da lista é 3. O primeiro elemento tem índice 0, portanto o último elemento é Z[2]. Veja como acessar e modificar elementos no interpretador:
A lista permite calcular a média de notas sem precisar de cinco variáveis separadas. No programa abaixo, notas é um acumulador indexado:
Uma modificação interessante é ler as notas do usuário e armazená-las na lista durante a execução:
💡 A grande vantagem desse programa foi não precisar declarar cinco variáveis para guardar as cinco notas. Todas foram armazenadas na lista, utilizando um índice para identificar ou acessar cada valor.
Podemos trabalhar com índices de forma dinâmica. No exemplo abaixo, o programa lê cinco números, armazena-os em uma lista e depois solicita que o usuário escolha qual posição deseja ver. Observe que adicionamos 1 a x na entrada para que o usuário veja “Número 1” em vez de “Número 0”:
Um efeito colateral importante das listas aparece ao tentar copiá-las. Em Python, uma lista é um objeto e, ao atribuirmos um objeto a outro, estamos apenas copiando a mesma referência — não os dados em si:
Ao modificarmos V, modificamos também L, pois ambas referenciam a mesma lista na memória. Para criar uma cópia independente, utilizamos L[:]:
Ao escrevermos L[:], estamos nos referindo a uma nova cópia de L. Índices negativos também funcionam — L[-1] é o último elemento, L[-2] o penúltimo:
Podemos usar a função len com listas. O valor retornado é igual ao número de elementos da lista:
A função len pode ser utilizada em repetições para controlar o limite dos índices. Veja o exemplo com tamanho fixo e depois com len:
💡 A vantagem de usar len(L) é que se trocarmos L por uma lista maior ou menor, o resto do programa continua funcionando sem alterações. O valor retornado por len não pode ser usado como índice, mas é perfeito para testar os limites da lista.
Modifique o programa da Listagem 6.6 para ler 7 notas em vez de 5.