Listas

É uma coleção de itens que possuem uma ordem particular. Você pode colocar qualquer informação dentro de uma lista e não necessariamente estes itens devem estar relacionados.

Uma lista é indicada pelo colchetes ([]) e os elementos contidos dentro de uma lista, são separados por vírgula. Exemplo:

# -*- coding: utf-8 -*-
turma_do_chaves = ['Chaves', 'Chiquinha', 'Quico', 'Seu Madruga', 'Dona Florinda', 'Bruxa do 71, a.k.a Clotilde', 'Dona Nieves', 'Pópis', 'Nhonho', 'Seu Barriga', 'Godinez', 'Professor Girafales', 'Gloria', 'Paty', 'Jaiminho', 'Furtado']

print(turma_do_chaves)

Saída:

$~ python3 chaves.py
['Chaves', 'Chiquinha', 'Quico', 'Seu Madruga', 'Dona Florinda', 'Bruxa do 71, a.k.a Clotilde', 'Dona Nieves', 'Pópis', 'Nhonho', 'Seu Barriga', 'Godinez', 'Professor Girafales', 'Gloria', 'Paty', 'Jaiminho', 'Furtado']

Toda lista é ordenada, isso significa que cada elemento de uma lista possui uma posição (índice) e este, tem um espaço reservado na memória. Uma lista da inicio sempre na posição 0.

# -*- coding: utf-8 -*-
turma_do_chaves = ['Chaves', 'Chiquinha', 'Quico', 'Seu Madruga', 'Dona Florinda', 'Bruxa do 71, a.k.a Clotilde', 'Dona Nieves', 'Pópis', 'Nhonho', 'Seu Barriga', 'Godinez', 'Professor Girafales', 'Gloria', 'Paty', 'Jaiminho', 'Furtado']

print(turma_do_chaves[0])

Saída:

$~ python3 chaves.py
 Chaves

Perceba que quando é solicitado apenas um item dentro da lista, já acontece uma formatação, eliminando as chaves ([]) e aspas (’‘). Caso você possua uma lista com strings e cada item está em minusculo, é possível editar a saída deixando os itens em maiusculo ou iniciar a primeira letra de cada item em maiusculo.

title()

# -*- coding: utf-8 -*-
turma_do_chaves = ['chaves', 'chiquinha', 'quico']
print(turma_do_chaves[0].title())

Saída:

$~ python3 chaves.py
 Chaves

upper()

# -*- coding: utf-8 -*-
turma_do_chaves = ['chaves', 'chiquinha', 'quico']
print(turma_do_chaves[0].upper())

Saída:

$~ python3 chaves.py
 CHAVES

Como dito, toda lista da inicio em 0 e segue seu fluxo de contagem, se houver 99 strings em uma lista, sua contagem vai de 0 à 98 e é possível realizar a saída de cada item, em qualquer posição, de uma maneira diferente.

# -*- coding: utf-8 -*-
turma_do_chaves = ['chaves', 'chiquinha', 'quico', 'Seu Madruga', 'Dona Florinda', 'Bruxa do 71, a.k.a Clotilde', 'Dona Nieves', 'Pópis', 'Nhonho', 'Seu Barriga', 'Godinez', 'Professor Girafales', 'Gloria', 'Paty', 'Jaiminho', 'Furtado']
print(turma_do_chaves[2])
print(turma_do_chaves[0].upper())
print(turma_do_chaves[1].title())
print(turma_do_chaves[-1].upper())

Saída:

$~ python3 chaves.py
quico
CHAVES
Chiquinha
FURTADO

Perceba que também é possível ler uma lista de trás pra frente, adicionando o simbolo de menor (-) e depois quantas posições deseja pular.

Desáfio: Com o conteúdo da postagem anterior, crie uma lista e usando valores individuais de uma lista, realize a concatenação com sua saída.

Elementos

Tudo dentro de uma lista é editavel e manipulavel. É possível substituir o conteúdo de um elemento, adicionar mais elementos e adicionar elementos a uma lista vazia.

Modificando elementos

# -*- coding: utf-8 -*-
carros = ['bmw', 'mercedes', 'porshe']
print(carros)

carros[2] = 'jaguar'
print(carros)

Saída

$~ python3 meuscarros.py
['bmw', 'mercedes', 'porshe']
['bmw', 'mercedes', 'jaguar']

Adicionando elementos

# -*- coding: utf-8 -*-
carros = ['bmw', 'mercedes', 'porshe']
print(carros)

carros.append('jaguar')
print(carros)

Saída

$~ python3 meuscarros.py
['bmw', 'mercedes', 'porshe']
['bmw', 'mercedes', 'porshe', 'jaguar']

O append() é excelente quando precisamos criar uma lista dinamica. Por exemplo, começar uma lista vazia e ir acrescentando elementos com uma série de instruções. Esse metodo foi utilizado no trabalho, por exemplo.

# -*- coding: utf-8 -*-
carros = []

carros.append('bmw')
carros.append('mercedes')
carros.append('porshe')

print(carros)

Saída

$~ python3 meuscarros.py
['bmw', 'mercedes', 'porshe']

Também é possível inserir um novo elemento em uma posição especifica dentro da lista, pra isso, utilizamos o .insert().

# -*- coding: utf-8 -*-
carros = ['bmw', 'mercedes', 'porshe']

carros.insert(1, 'jaguar')
print(carros)

Saída

$ ~ python3 meuscarros.py
['bmw','jaguar', 'mercedes', 'porshe']

Caso haja um elemento na posição que foi setada para o novo elemento, o elemento que já estava naquela posição, será deslocado para a direita junto com os demais.

Uma opção que nós podemos utilizar com frequência, é a exclusão de um elemento dentro de uma lista. E há três modos de realizar essa proeza. Uma, é utilizando a instrução del que elimina aquele elemento desejado e o deixa incapaz de utiliza-lo novamente. Já a instrução pop() remove o ultimo item dentro de uma lista por default, mas ainda será possível utilizar o valor do item depois de removê-lo.

del

# -*- coding: utf-8 -*-
carros = ['bmw', 'mercedes', 'porshe']

print(carros)

del carros[0]
print(carros)

Saída del

$ ~ python3 meuscarros.py
['bmw', 'mercedes', 'porshe']
['mercedes', 'porshe']

pop()

# -*- coding: utf-8 -*-
carros = ['bmw', 'mercedes', 'porshe']

print(carros)

popp_carros = carros.pop()
print('\n',popp_carros)

print('\n',carros)

Saída pop()

['bmw', 'mercedes', 'porshe']

porshe

['bmw', 'mercedes']

Percebe a diferença? O del elimina o item e impossibilita a reutilização do mesmo, pois aquele elemento que estava reservado na memoria não existe mais. Já o pop() remove da lista, mas move este elemento para uma outra variavel, como se fosse uma pilha. Essa instrução é utilizada em jogos por exemplo, onde o ultimo jogador sem vida, é eliminado, mas ainda é possível ver o numero de pontos que ele adquiriu em uma partida.

Mas e se a lista de jogadores não lista quem está em ultimo? Também é possível realizar a remoção desse elemento setando a posição do item dentro da lista.

# -*- coding: utf-8 -*-
carros = ['bmw', 'mercedes', 'porshe']

print(carros)

popp_carros = carros.pop(0)
print('Carro removido:', popp_carros)
print(carros)

Saída

['bmw', 'mercedes', 'porshe']
Carro removido: bmw
['mercedes', 'porshe']

A terceira é remover um item de acordo com seu valor, seu nome. Se você conhece o valor de um item e quer remove-lo, basta utilizar o método remove().

Desses carros em nossa lista, digamos que eu vou vende-lo, mas, não sei sua posição. Utilizando o remove() eu insiro apenas o nome do elemento que será removido.

# -*- coding: utf-8 -*-
carros = ['bmw', 'mercedes', 'porshe']

print(carros)
carros.remove('mercedes')
print(carros)

Saída

['bmw', 'mercedes', 'porshe']
['bmw', 'porshe']

Desafio: Faça um programa com cada uma das opções listadas acima, para a ultima instrução remove(), faça com que seja exibido o nome do item removido e o por que.

Ficamos por aqui com as listas, mas darei continuidade com elas, pois há muita informação sobre. Então, see you!!!