image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Germano
Germano11/01/2024 13:57
Compartilhe

Listas em Python: a gaveta mágica da programação

  • #Python

Considere uma gaveta capaz de acomodar qualquer item que você possa imaginar, e o mais incrível, seu espaço é infinito, podendo colocar coisa que você quiser. Parabéns, você acabou de descobrir o poder da função list em Python. Assim como essa gaveta mágica, a função list permite que você armazene uma variedade ilimitada de elementos, organizando os dados em uma sequência flexível e acessível. Seu potencial dinâmico e capacidade de adaptação tornam ela uma ferramenta essencial para organizar e manipular dados de forma eficiente em programação, oferecendo um espaço virtual sem limites para suas necessidades de armazenamento.

Comparada a outras linguagens de programação, a função list em Python oferece uma grande conveniência e facilidade de uso devido à sua versatilidade. Em muitas linguagens, a criação e manipulação de listas podem exigir mais código e ser menos intuitivas.

 O Python segue algumas metodologias de desenvolvimento como, RAD (Rapid Application Development - Desenvolvimento rápido de aplicações). É uma metodologia focada na redução dos desperdícios e, melhorando assim a qualidade do código, diminuindo tempo, e custos de produção. Segue técnicas de desenvolvimento DRY (Don't Repeat Yourself - Não se repita). Onde, a codificação não deve possuir ambiguidades e cada porção de conhecimento do sistema deve ser independente, para que, no momento de um problema, outras reponsabilidade do software não sejam afetadas. E o princípio KISS (Keep it simple stupid – Mantenha simples, idiota). Onde, sua ideia é que o software deve ser simples, pois, quanto mais simples mais rápido ele será executado, será mais leve, e a curva de aprendizado do usuário será menor. (SILVA, Rogério; SILVA, Igor; Linguagem De Programação Python, 2019, p. 5)

Como funciona listas

Uma lista é uma estrutura de dados que combina índices e dados. Os índices desempenham o papel de identificadores únicos, permitindo que nos refiramos a dados específicos associados a cada posição na lista. Cada índice representa uma localização única na sequência da lista, proporcionando uma maneira eficiente de acessar e manipular os dados contidos nela. Dessa forma, a combinação de índices e dados em uma lista cria uma estrutura flexível e poderosa para armazenar e organizar informações em programas Python. Acessando dados por meio do índice:

lista = ['A', 'B', 'C']

Primeiro = lista[0]  # indice 0 = 'A'
Segundo = lista[1]   # indice 1 = 'B'
Terceiro = lista[2]  # indice 2 = 'C'
Em Python o '#' serve para comentar no código

Em Python, você pode usar índices negativos para contar de trás para frente, como ‘-1’ que se refere ao final da lista, ‘-2’ ao penúltimo, até chegar no começo da lista.

lista = ['A', 'B', 'C']

ultimo = lista[-1]     # indice -1 = 'C'
penúltimo = lista[-2]  # indice -2 = 'B'
Em Python o '#' serve para comentar no código

Veja 3 maneiras de criar uma lista em Python:

listaVazia = []
listaComInteiros = [4, 5, 6, 7, 8]
listaComVariosDados = ['CAFÉ', 5, 16.98, True, soma]

Como pode ver, uma list é bem útil no requisito “guardar” dados, isso se dá ao princípio da tipagem dinâmica e ao suporte a dados heterogêneos em Python, dá até pra colocar uma função dentro de uma list:

#criando função soma
def soma(a, b): return a + b

#lista com a função no índice 4
listaComVariosDados = [‘CAFÉ’, 5, 16.98, True, soma]

n1 = 5
n2 = 2

#chamando a função soma dentro da lista e passando os parâmetros
resultadoSoma = listaComVariosDados[4](n1, n2)

print(f"Soma de {n1} + {n2} = {resultadoSoma }")

#saída: Soma de 5 + 2 = 7
Em Python o '#' serve para comentar no código

Adicionando dados na lista usando o método insert(), append() e extend():

O método insert() em Python é utilizado para inserir um dado em uma lista em uma posição específica. Se você já entende como funciona um array, pode ficar surpreso ao descobrir que o método insert() em uma lista em Python insere um dado no índice desejado, movendo os outros elementos para trás, em vez de simplesmente substituir o valor existente nesse índice.

#sintaxe: lista.insert(índice, dado a ser inserido na lista)

lista = [4, 5, 6, 7, 8]
#adicina o 3 na posição 0 da lista, movendo os outros dados pra trás
lista.insert(0, 3)

print(lista)

#saída: [3, 4, 5, 6, 7, 8]
Em Python o '#' serve para comentar no código

O método append() é o oposto do insert(), aqui é quando queremos expandir dinamicamente uma lista, adicionando dados ao final da lista, sem a necessidade de indicar um índice:

# sintaxe: lista.append(dado)

lista = [3, 4, 5, 6, 7, 8]

#adicionando o 9 no fim da lista
lista.append(9)

print(lista)

#saída: [3, 4, 5, 6, 7, 8, 9]
Em Python o '#' serve para comentar no código

Além de adicionar dados, é possível adicionar dados de um iterável no final de uma lista usando o método extend(), em outras palavras, dá pra uma lista dentro de outra lista!!!

#sintaxe: lista.extende(outra lista)

lista = [1, 2]

#adicionando uma lista de números inteiros dentro de outra lista
lista.extend([3, 4, 5, 6, 7, 8, 9])

print(lista)

#saída: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Em Python o '#' serve para comentar no código

Removendo dados na lista usando o método pop(), remove() e del:

Em Python o método pop() é usado para remover e retornar o último dado de uma lista ou um dado em uma posição específica:

#sintaxe: lista.pop() ou lista.pop(índice)

lista = [1, 2, 3, 4, 5, 6, 7, 8, 9]

#remove e retorna o último dado da lista
removido = lista.pop()

print(f“Dado removido da lista: {removido}”)

print(f“Lista depois do pop(): {lista }”)

#saída:
#Dado removido da lista: 9
#Lista depois do pop(): [1, 2, 3, 4, 5, 6, 7, 8]

Em Python o '#' serve para comentar no código

É útil quando você precisa remover dados específicos de uma lista e, ao mesmo tempo, precisa saber qual dado foi removido. Se você usar pop() sem um índice, ele sempre removerá e retornará o último dado da lista. Se você fornecer um índice, ele removerá o dado nesse índice específico. Lembre-se de que os índices em Python começam do zero.

#sintaxe: lista.pop() ou lista.pop(índice)

lista = [1, 2, 3, 4, 5, 6, 7, 8, 9]

removido = lista.pop(4)

print(f“Dado removido da lista: {removido}”)

print(f“Lista depois do pop(): {lista }”)

#saída: 
#Dado removido da lista: 5
#Lista depois do pop(): [1, 2, 3, 4, 6, 7, 8, 9]
Em Python o '#' serve para comentar no código

Agora para remover um dado em especifico sem usar o índice, se usa o método remove(), vejamos como ele funciona e uma boa pratica de usar esse método:

#sintaxe: lista.remove(dado)

lista = [1, 2, 3, 2]

lista.remove(2)

print(lista)

#saída: [1, 3, 2]
Em Python o '#' serve para comentar no código

Observe que o método remove() só excluiu da lista o primeiro ‘2’, isso mostra que o método começa sua busca do índice 0 até encontrar o dado, isso parece bom né? Errado!!! Por causa disso, caso o método remove() não encontre o dado na lista, o Python dá um erro ‘ValueError’ como mostrado na documentação oficial do Python. Aqui vai uma boa pratica para seu código nunca dar esse erro, usando um if:

lista = [1, 2, 3, 2]

#usando o if pra checar se na lista tem o dado 2
if 2 in lista:
lista.remove(2)
else:
print(“Esse valor não consta na lista.”)
Em Python o '#' serve para comentar no código

Assim, o método remove() é útil quando você deseja eliminar um valor específico em uma lista.

A palavra del em Python é uma palavra reservada para excluir itens de uma lista ou até mesmo excluir a própria:

#sintaxe: del lista(indice)

lista = [‘Banana’, ‘Pera’, ‘Amora’, ‘Manga’]

#usando o del para excluir um dado dentro da lista 
del lista[1]

print(lista)

#saída: [‘Banana’, ‘Amora’, ‘Manga’]
Em Python o '#' serve para comentar no código

Usar del para excluir itens ou listas é útil quando você precisa liberar espaço na memória ou remover dados indesejados. No entanto, é importante usar com cautela, especialmente ao excluir variáveis, pois isso pode afetar o comportamento do programa.

Percorrendo uma lista:

A estrutura for é uma ferramenta poderosa para realizar operações em casa elemento da lista. Vou te mostrar como percorrer uma lista com for, suponha que você tenha uma lista de todos os números primos do 1 até o 10, e precise ver o dobro de cada um.

numerosPrimos = [2, 3, 5, 7]

#percorrendo a lista usando for

for numero in numerosPrimos:
dobro = numero * 2
print(f"O dobro de {numero} é {dobro }")

#saída:
# O dobro de 2 é 4
# O dobro de 3 é 6
# O dobro de 5 é 10
# O dobro de 7 é 14

Conclusão:

Exploramos o conceito de listas como estruturas de dados, destacando a indexação, o fatiamento e a flexibilidade proporcionada pela combinação de índices e dados. Além disso, foram apresentados exemplos práticos de casos de uso, demonstrando como as listas podem ser empregadas para manipulação, filtragem, processamento e armazenamento de dados. Discutimos métodos importantes para adicionar e remover dados em listas, como insert(), append(), extend(), pop(), remove() e del, fornecendo diversas maneiras de manipular os dados de uma lista de acordo com as necessidades do programador. Por fim, enfatizamos o uso da estrutura de controle for para iteração sobre listas, exemplificando como essa ferramenta pode ser aplicada para percorrer elementos e realizar operações específicas em cada um.

Bônus - Exemplo de uso para listas:

Precisamos da média da altura de alguns alunos usando uma lista em Python

alturaDosAlunos = [1.70, 1.65, 1.90, 1.75]

mediaDaAltura = sum(alturas) / len(alturas)

print(f”Média das alturas: {mediaDaAltura:.2f} metros”)

Qual é a média da altura dos alunos? coloca aí nos comentários

Este foi meu primeiro artigo. Se ficou faltando algo ou se você tem alguma crítica construtiva para o artigo, sinta-se à vontade para compartilhar nos comentários. Espero que este seja o primeiro artigo de muitos. Até a próxima!

Referência:

Documentação do Python: https://docs.python.org/pt-br/3/tutorial/datastructures.html#using-lists-as-stacks

Tecnologias em projeção: https://revista.projecao.br/index.php/Projecao4/article/view/1359

Compartilhe
Comentários (1)
Kauã Fabricio
Kauã Fabricio - 13/01/2024 20:52

Gostei do seu artigo, Germano! Muito bom relembrar essa estrutura de dados, sou apaixonado pela simplicidade e flexibilidade do Python. Recentemente, postei meu primeiro artigo também. Ficarei bem feliz se você puder lê-lo!

Descomplicando a função open() em Python: aprenda a manipular arquivos