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")