Nessa aula estudaremos a Estrutura de Dados list que a linguagem Python nos proporciona para a manipulação de listas de maneira geral. |
A CLASSE list
A classe list possui as funcionalidades e propriedades primitivas e pertencentes a todas as listas.
Todas as vezes em que formos manipular listas, a primeira opção que teremos para organizar os elementos, será a estrutura list, e inclusive, somos capazes de declarar de forma primitiva, até porque, a linguagem Python adicionou a sua sintaxe uma notação para representar listas.
A NOTAÇÃO DE LISTA
Todos elementos que estiverem delimitados por um par de colchetes é para o Python uma lista, por exemplo:
#coding: utf-8
nums = [1, 2, 3, 4, 5]
No código acima, temos 5 números separados por vírgula e delimitado por colchetes e sendo atribuidos a uma referência de nome nums.
Esse código quando interpretado pela VM do Python, entenderá que nums receberá o valor da expressão a direita do operador de atribuição.
A expressão ao lado direito do sinal de atribuição, está envolvido, isto é, delimitado por colchetes, o de abertura [ e o de fechamento ]. Essa é a notação de listas, e os elementos pertencentes, será todo aquele contido entre os colchetes e separado por vírgula.
Assim, temos, que o objetos numéricos 1 2 3 4 5 serão interpretados separadamente, até porque, há uma vírgula entre eles e todos farão parte de uma lista que a VM do Python criará e vinculará o nome nums a referência dessa nova estrutura.
A DECLARAÇÃO EXPLICITA
Uma lista pode ser declarada explicitamente, bastando somente, a passagem de argumentos, na inicialização do objeto list. Cada argumento será interpretado como sendo um elemento único e então, será adicionado à estrutura list.
#coding: utf-8
l = list() #declaração explicita
nums = list(1,2,3,4,5) #declaração explicita com mesmo resultado do que o código anterior
No código acima, inicialmente, declaramos uma lista que contém 0 elementos e vinculamos a referência l a instância criada.
Em seguida, estamos declarando uma lista e para isso, utilizamos a classe list e enviando como parâmetro os elementos que devem pertencer a estrutura.
O TIPO DOS ELEMENTOS
Todo elemento contido numa lista é também um objeto. Como estudado, no Python, tudo são objetos. Logo, a lista é um objeto propriamente dito, da mesma forma que, cada elemento contido no objeto Lista, é também um objeto.
Podemos concluir facilmente, que se tudo são objetos em Python, e todo elemento contido numa lista é também um objeto, temos, que numa lista, podemos trabalhar com elementos cuja definição sejam as mais variadas, isto é, a classe utilizada para a criação do objeto é indiferente, este após criado, pode ser adicionado a qualquer lista.
No código a seguir, definiremos uma Lista que contém um conjunto de objetos Strings. Observe, que um objeto String é também uma lista, no caso, de caracteres!
#coding: utf-8
textos = ['valor1', 'textoX', 'str2', 'Digite um texto: ']
IDENTIFICAÇÃO DOS ELEMENTOS
Cada elemento contido num objeto list terá associado um número inteiro não negativo. Assim, o primeiro elemento adcionado, terá associado o número 0, o segundo elemento adicionado, terá associado o índice igual a 1, e assim por diante.
Das informações anteriores, podemos definir 2 propriedades pertencente as listas em Python. A primeira é que o primeiro elemento adicionado sempre terá o índice igual a 0, e o último elemento adicionado, terá índice igual a -1.
ACESSANDO ELEMENTOS
O acesso aos elementos contidos numa lista pode ser feito pelo uso da referência seguida por um par de colchetes e neste, o índice do elemento a ser acessado, por exemplo:
referência[ <índice> ]
No código a seguir, vamos definir uma lista, atribui-la a uma referência e então, acessar alguns elementos.
#coding: utf-8
letras = ['a', 'b', 'c', 'd', 'e']
letras[0] #acessa elemento cujo texto é igual a "a"
letras[2] #acessa elemento cujo texto é igual a "c"
letras[-1] #acessa elemento cujo texto é igual a "e"
No código acima, utilizamos a notação de acesso aos elementos contidos numa lista e assim, obtivemos como resultado do acesso, o retorno de um objeto tipo String contendo a correspondente letra.
Podemos por exemplo, manipular vários elementos numa única expressão.
#coding: utf-8
print(letras[0] + letras[1])
LISTAS E STRING
Toda String é por sua definição mais primitiva, uma lista de caracteres. Em Python, podemos inicializar uma lista e como parâmetro, enviar os caracteres que desejamos manipular individualmente como também, definir uma lista onde o conjunto de caracteres formam um único elemento. Por isso, a forma como declaramos cadeias de caracteres em Python, irá definir como esta cadeia será manipulada.
#coding: utf-8
l = list("eXcript")
Acima, temos que o primeiro elemento da lista é o caractere "e", o segundo elemento, o caractere "X", o terceiro elemento, o caractere "c" e assim sucessivamente.
A VM do Python definiu que cada caractere da String que enviamos como parâmetro na inicialização da lista era um elemento único e por conseguinte, deveria ter acesso individual bastando somente, definir o índice correspondente.
Se desejarmos inicializar uma lista e a esta atribuirmos um único elemento do tipo String, temos que proceder da seguinte maneira:
#coding: utf-8
nova_lista = lista(("eXcript"))
Logo, nós teremos uma lista que contém um único elemento do tipo String e estará armazenando a palavra eXcript.
O TIPO DOS ELEMENTOS
Estudamos listas contém só e somente só objetos, dessa forma, cada objeto pode ter sido criado através de uma classe diferente e assim, conter informações das mais diversas.
No código abaixo, estamos declarando uma variável e adicionando a esta uma lista que contém elementos de vários tipos.
#coding: utf-8
lista_mista = ["d", True, 1,2,3,4, "Testando o Python"]
No código acima, definimos inicialmente, uma variável de nome lista_mista e atribuimos a mesma uma lista contendo 7 elementos de tipos diferentes. O primeiro elemento é um caractere, o segundo é um valor lógico, o terceiro é um número e assim por diante.
Por fim concluimos que listas em Python não definem o tipo de seus elementos, como ocorre com os Array em linguagem como Java, C e C++. Assim, ainda que o funcionamento das lista em seja similar a um Array em C, C++, Pascal, numa lista só iremos ter objetos e por isso, o tipo do objeto é indiferente até porque, todo objeto, indiferente da sua declaração, descende de uma mesma estrutura implicita a linguagem.
VETORES E LISTAS
Alunos que estudaram linguagens como o C/C++, Java, Pascal as vezes imaginam o tipo lista como sendo um vetor, porém, conceitualmente, a única relação entre ambas estruturas é que as 2 contém um conjunto de elementos indexados.
1) Vetores possuem uma quantidade limitada de elementos 2) TODOS os elementos devem ser do mesmo tipo 3) Não permitem slice/fatiamento 4) Não possuem índices negativos,
NOTAÇÃO SUBSCRITA
A notação para acesso a elementos de uma lista é chamado no glossário do Python de notação subscrita, em Inglês subscript notation .
VEJA TAMBÉM
LINKS EXTERNOS
Tags curso, python
Comentários
comments powered by Disqus