Faça Sua Pesquisa.

sexta-feira, 24 de fevereiro de 2012

Uso de listas Python



Lista é uma seqüencia de valores que utilizamos no Python. Listas são dinâmicas, o que possibilita adicionarmos ou removermos valores uma vez que a lista for criada.

Uma lista possibilita conter valores inteiros(int), strings, float ou qualquer outro tipo de objeto. Podemos utilizar o mesmo método de mapeamento de endereços que utilizamos nas strings.

lista = [1,2,3]
lista

[1, 2, 3]

lista[0]
1

lista[-1]
3

Onde o endereço 0 (lista[0]) da lista é 1. Podemos também pegar vários valores de uma lista e concatena-los. Exemplo:

lista[0]+lista[1]
3

Nesse caso, somamos o valor do endereço 0 de lista para o valor do endereço 1 de lista. Se adicionarmos um valor diretamente a lista, retornaremos um erro, pois não é possível adicionar valores diretamente a lista, sendo necessário utilizarmos outro método.

lista+22

Traceback (most recent call last):
File "<pyshell#134>", line 1, in -toplevel-
lista+22
TypeError: can only concatenate list (not "int") to list

Porém se fizermos lista+[22] adicionaremos o valor a lista.

lista = lista+[22]
[1, 2, 3, 22]

Vamos ver os valores da lista:

lista
[1, 2, 3, 22]

Também podemos utilizar o endereçamento da lista ou o método append. Por exemplo, modificar o endereço 0 que contém o valor 1 para Fabio:

lista[0] = "Fabio"
lista

['Fabio', 2, 3]

Se tentarmos adicionar outro endereço utilizando endereçamento, teremos um erro, pois deveremos utilizar o append para adicionar ítens a lista.

lista[3] = "Rizzo"

Traceback (most recent call last):
File "<pyshell#138>", line 1, in -toplevel-
lista[3] = "Fabio"
IndexError: list assignment index out of range

Agora utilizando o método append:

lista.append("Matos")
lista

['Fabio', 2, 3, 'Matos']

Existem outros métodos de adicionar valores a listas. Veja abaixo:

lista
['Fabio', 2, 3, 'Matos']

lista.insert(1,"Rizzo")
lista

['Fabio', 'Rizzo', 2, 3, 'Matos']

Utilizando a forma acima, podemos definir em qual endereço queremos adicionar o valor desejado. No caso acima, inserimos Rizzo no endereço 1 da lista.

Outro método utilizado é o extend, que é utilizado para adicionarmos mais que 1 valor, ou principalmente para adicionarmos um a lista inteira a outra lista. Veja:

lista = ["Fabio","Rizzo","Matos"]
lista2 = ["Azul","Preto"]
lista.extend(lista2)

lista

['Fabio', 'Rizzo', 'Matos', 'Azul', 'Preto']

Se nós tivéssemos utilizado o método append, nesse caso teríamos uma lista contendo outra lista. Veja:

lista = ["Fabio","Rizzo","Matos"]
lista.append(lista2)

lista

['Fabio', 'Rizzo', 'Matos', ['Azul', 'Preto'] ]

E quando chamásse-mos o valor 3 lista, teríamos uma lista como resposta e não somente Azul:

lista[3] ['Azul', 'Preto']

len(lista)
4

Mais com o método extend, teríamos o azul como resposta.

lista[3] 'Azul'

len(lista)
5

Veja que o len nos mostrou valores diferentes, pois com o append a lista2 é apenas um valor dentro de uma lista diferente do extend que adiciona a lista2 como vários valores.

Para removermos algum valor da lista temos alguns métodos. Veja:

lista
['Fabio', 'Rizzo', 'Matos', 'Azul', 'Preto']

lista.remove("Preto")
lista

['Fabio', 'Rizzo', 'Matos', 'Azul']

lista.pop()
'Azul'

Dessa forma removeremos um valor que existe em nossa lista. E o método lista.pop() por default remove o último valor, porém é possível adicionar um endereço a ser removido:

lista
['Fabio', 'Rizzo', 'Matos']

lista.pop(1)
'Rizzo'

lista
['Fabio', 'Matos']

Se tentarmos remover um valor que não está na lista, teremos o seguinte retorno:

lista.remove("Amarelo") Traceback (most recent call last):
File "<pyshell#168>", line 1, in -toplevel-
lista.remove("Amarelo")
ValueError: list.remove(x): x not in list

Para saber se tal valor existe dentro de uma seqüencia, basta fazer o seguinte:

"Amarelo" in lista
False

Se o valor retornar "True" significa que temos o valor na lista, caso contrário teremos o valor "False" como acima.

Agora para achar o endereço do valor dentro da lista utilizamos o método index:

lista
['Fabio', 'Rizzo', 'Matos', 'Azul']

lista.index("Azul") 

0 comentários:

Postar um comentário

TecCodigos Copyright © 2011 | Template created by O Pregador | Powered by Blogger