Curso de Python – Aula Bônus (Compreensão da Lista)

Trabalhar com Listas em Python é algo bem interessante. Uma das vantagens disso é que, em Python, temos uma ferramenta poderosa chamada Compreensão da Lista. Ela consiste em reduzir a quantidade de código quando você quer transformar uma lista em outra. Hã? Como assim? Vamos supor que você tenha uma lista de strings maiúsculas e com espaçamentos em cada string, mas você deseja “limpar” esta lista (removendo os espaçamentos e deixando tudo em minúsculo) e atribuir os dados limpos a outra, como você faria isso?
Talvez faríamos da seguinte forma:

mylist = [' A ', ' B ', ' C ', ' D ', ' E ']
cleanedlist = []

for item in mylist:
    cleanedlist = mylist.strip().lower()

Esse é um código simples para uma tarefa simples. Perfeito! Vejo vocês na próxima aula 😉
Não, brincadeira! Esperem! Aplicando o conceito de Compreensão da Lista tem como simplificarmos ainda mais nosso código. Dêem uma olhada no seguinte exemplo:

mylist = [' A ', ' B ', ' C ', ' D ', ' E ']
cleanedlist = [item.strip().lower() for item in mylist]

Pronto! Reduzimos a lógica de limpeza e atribuição para apenas uma linha. Fantástico, não? Agora vamos entender o que está se passando ali. Em Compreensão da Lista lemos o código da direita para a esquerda, assim fica mais fácil de entender. Para cada item em mylist eu vou apagar os espaços em branco com o método split() e deixar a string em letra minúscula com o método lower(); após isso, vou atribuir essa nova lista para cleanedlist.

O Python é uma linguagem fantástica! Nunca deixe de explorar a fundo suas características, você não vai se arrepender 😉

Um abraço e até a próxima!

Curso de Python – Aula 5 (Tipos de Dados – Coleções – Listas)

Em Python há basicamente 3 tipos de coleções:

    Listas
    Tuplas
    Dicionários

Listas são coleções de objetos. É basicamente a mesma idéia de um vetor em outras linguagens. Uma lista pode conter quaisquer valores, inclusive tipos mistos (inteiros e strings, por exemplo) e outras listas dentro dela. No exemplo abaixo vou declarar um tipo lista e imprimir seus valores:

>>> lista = [5, "Foo", 3.14, [1, 2, 3]]
>>> print(lista)
[5, 'Foo', 3.14, [1, 2, 3]]
>>>

Para acessar um elemento da lista basta informar sua posição (lembrando que em Python os elementos sempre iniciam em 0). Ex:

>>> print(lista[0])
5
>>>

Utilizando o operador + posso concatenar duas listas. Ex:

>>> lista1 = [1, 2, 3]
>>> lista2 = [4, 5, 6]
>>> lista3 = lista1 + lista2
>>> print(lista3)
[1, 2, 3, 4, 5, 6]
>>>

Para adicionar um elemento ao final da lista utiliza-se o método append(). Ex:

>>> lista3.append(7)
>>> print(lista3)
[1, 2, 3, 4, 5, 6, 7]
>>>

Ou você pode concatenar o elemento a lista. Ex:

>>> lista4 = lista3 + [8]
>>> print(lista4)
[1, 2, 3, 4, 5, 6, 7, 8]
>>>

Para remover um item de sua lista utiliza-se os seguintes métodos: remove() ou pop(). O método remove() irá remover o primeiro item da lista que contenha o valor informado no método, já o pop() irá remover o item da lista pelo índice informado. Ex:

>>> print(lista4)
[1, 2, 3, 4, 5, 6, 7, 8]
>>> lista4.remove(8)
>>> print(lista4)
[1, 2, 3, 4, 5, 6, 7]
>>> lista4.pop(0)
1
>>> print(lista4)
[2, 3, 4, 5, 6, 7]
>>>

Outros métodos importantes são:
insert(), que irá inserir um item na posição informada. Ex:

>>> lista = [1, 2, 3]
>>> index = 3
>>> lista.insert(index, 4)
>>> print(lista)
[1, 2, 3, 4]
>>>

extend(), que é semelhante ao método append(), porém ao invés de um valor qualquer ele adiciona uma lista ao final da sua lista. Ex:

>>> lista1 = [1, 2, 3]
>>> lista2 = [4, 5, 6]
>>> lista1.extend(lista2)
>>> print(lista1)
[1, 2, 3, 4, 5, 6]
>>>

index(), que retorna o índice do item informado. Ex:

>>> lista = ['A', 'B', 'C']
>>> lista.index('B')
1
>>>

count(), que retorna o número de vezes que o valor se repete na lista. Ex:

>>> lista = ['A', 1, 'B', 1, 'C', 'A', 1, 'D']
>>> lista.count(1)
3
>>> lista.count('A')
2
>>>

sort(), que ordena os itens da lista. Ex:

>>> lista = [3, 4, 1, 0, 2, 5]
>>> lista.sort()
>>> print(lista)
[0, 1, 2, 3, 4, 5]
>>>

reverse(), que inverte a ordem dos itens da lista. Ex:

>>> lista = [0, 1, 2, 3, 4, 5]
>>> lista.reverse()
>>> print(lista)
[5, 4, 3, 2, 1, 0]
>>>

Agora chegou a hora mais esperada: hora de praticar 😀
Dada a seguinte lista: [0, 10, 9, 4, 6, 8, 7, 3, 1, 5, 2]
1 – Ordene-a de forma que ela fique assim: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0].
2 – Remova todos os números ímpares e insira os valores removidos em outra lista.
3 – Concatene as duas listas criadas.

Qualquer dúvida comente o post ou me envie um email.

Um abraço e até a próxima 😉