Nessa aula continuaremos o estudo das Listas em Python e veremos definições e tecnicas avançadas para a manipulação e construção de estruturas complexas com uso de conceito primitivo das listas. |
LISTA DE OBJETOS
Estudamos nas aulas anteriores como definir uma lista em Python utilizando a notação implicita e explicita. Para recordamos ambos conceitos, analisemos o trecho de código a seguir.
#coding: utf-8
lista1 = [1,2,3, 'a'] #declaração implicita de lista
lista2 = list((1,2,3)) #declaração explicita de lista
Observe como definimos os elementos que foi atribuido para a referência lista2, isto é, enviamos 3 objetos numéricos e utilizamos 2 parenteis. O primeiro parêntesis é onde declaramos os parâmetros iniciais que podem ser enviados na definição de uma nova lista. O segundo parêntesis, é para dizer ao Python, que todos os 3 elementos devem ser adicionado a lista que estamos criando. Se o segundo parêntesis fosse omitido, estaríamos dizendo que cada objeto numérico é um parâmetro na inicialização de um objeto list.
Se é possível definir qualquer objeto como sendo um elemento de uma lista, podemos declarar listas que contém elementos que também são lista, como no código a seguir.
#coding: utf-8
l = [[], [], []]
Inicialmente, definimos uma lista de nome "l" e a esta atribuímos uma lista que contém 3 elementos do tipo lista, ou seja, temos lista contido dentro de outra lista.
Para que seja mais fácil o nosso estudo, vamos definir uma outra lista que contém listas internamente, porém agora, vamos atribuir itens para a lista interna, por exemplo:
#coding: utf-8
lista = [[1, 2, 3], ['a', 'b', 'c'], ]
Acima, nós definimos uma lista, de nome "lista" que contém dois elementos do tipo list
. O primeiro elemento que é do tipo lista, nós temos 3 outros elementos definidos. Assim, temos que a referência "lista5" contém um elemento que é uma lista que contém outros 3 elementos.
Para nós acessarmos elementos contidos em listas, temos que utilizar uma notação especifica onde definimos o índice do elemento a ser acessado, como podemos ver no código seguinte.
#coding: utf-8
lista[0]
Se você executar esse código, perceberá que o elemento retornado também será uma lista, até porque, definimos uma Lista como sendo também, um elemento de outra Lista.
LISTAS CONTIDAS EM LISTAS
O acesso a elementos a listas contidas em outras, faz-se através da concatenação de pares de colchetes. Logo, quando mais aninhado tiver a lista, maior a concatenação de colchetes necessária. É importante destacar que cada par de colchete representa uma lista.
#coding: utf-8
lista[0][0]
Se executarmos o código acima, estaremos dizendo ao Python que queremos acessar o elemento 0 do objeto de nome "lista" e em seguida, queremos acessar um elemento de índice 0, do elemento que nos será retornado.
O PRIMEIRO E ÚLTIMO ELEMENTO
As linguagens geralmente definem que o primeiro elemento da lista tem índice 0, uma definição utilizada em linguagens antigas, decorrente de uma outra linguagem e a história vai longe.
Quando escuto alguém dizer que essa notação está errado, concordo totalmente, porém, discordo que o padrão seja hoje descontinuado! Fisicamente, nenhuma lista contém elementos que precedem o primeiro, ou seja, não existe nem nomenclatura para nos referirmos ao elemento 0. Então, mesmo que nao haja lógica, o fato é que essa notação se tornou um padrão e é adotado pelas principais linguagens de programação do mercado.
Por isso, hoje, é indiferente se o conceito é certo ou errado, até porque assim está definido e não crie esperanças de algum dia vê-lo alterado! Isso seria o maior caos para os sistemas legados.
Um padrão não usual é se referir ao último elemento da lista com índice igual a -1. Esse conceito é bastante lógico às listas onde o primeiro elemento possui índice 0. Assim, se imaginarmos uma lista como sendo um círculo fechado e o primeiro elemento é igual a 0, nada mais justo do que atribuir ao último elemento índice igual a -1.
E também, todos que já manipularam listas de forma primitiva, sabem que os elementos mais acessados na grande maioria das funcionalidades que devem ser implementas, manipulam o primeiro e o último elemento.
#coding: utf-8
lista[0] #acesso ao primeiro elemento
lista[-1] #acesso ao último elemento
Tags curso, python
Comentários
comments powered by Disqus