Prévia do material em texto
PENSAMENTO
COMPUTACIONAL
Patrícia Fernanda da Silva
Vanessa Stangherlin Machado Paixão Cortes
Operações e métodos
de lista (Python)
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
� Explicar os métodos definidos para listas em Python.
� Exemplificar a utilização das operações e dos métodos em Python.
� Utilizar listas e os seus métodos em problemas computacionais.
Introdução
Qualquer programa que valha a pena ser escrito precisa manipular dados.
Algumas vezes, esses dados são fáceis de manipular, e variáveis simples
podem ser usadas. Mas, na maior parte dos casos, precisamos escrever
programas que manipulam dados complexos. Para dominar essa com-
plexidade, muitas vezes podemos armazenar esses dados em listas – por
exemplo, listas de clientes, de amigos, de produtos, e assim por diante,
conforme leciona Barry (2012). O Python apresenta muitos recursos po-
derosos para manipular listas por meio de seus métodos e operações,
permitindo criar programas capazes de lidar com dados mais complexos.
Neste capítulo, você vai estudar sobre o uso de métodos definidos
para listas em Python. Você também vai analisar o uso de operações e
métodos e, por fim, vai praticá-los em problemas computacionais.
Métodos definidos para listas em Python
Na linguagem de programação Python, as listas são representadas por uma
sequência de objetos separados por vírgula e dentro de colchetes. Uma lista é
um conjunto sequencial de valores, em que cada valor é identificado por meio
de um índice 0. Para Maruch e Maruch (2006), uma lista é um tipo de dado
mutável, ou seja, você pode realizar a alteração do conteúdo de uma lista
sem que uma nova lista tenha que ser criada. Uma mesma lista pode conter
números, strings, outras listas, tuplas, funções e classes.
Uma lista em Python pode ser declarada com a estrutura demonstrada
na Figura 1.
Figura 1. Exemplo de estrutura de uma lista.
As listas contam com uma variedade de métodos, como inserção, exclusão,
contagem e ordenação de seus elementos. Na Figura 2, podemos ver a utilização
do método sort( ) para ordenar uma lista de anos.
Figura 2. Exemplo de uma lista com o método
sort( ).
Operações e métodos de lista (Python)2
Observe que, na primeira versão da lista, os números estavam desordena-
dos; após a execução do método sort( ), os números foram ordenados em
ordem crescente dentro da lista.
Conhecendo uma tupla
A tupla, assim como uma lista, é um conjunto de valores em sequência, em
que cada valor é identificado por meio de um índice (Figura 3). A diferença
principal entre uma tupla e uma lista é que as tuplas são imutáveis, isto é,
seus elementos não podem ser alterados.
Caso seja necessário alterar uma tupla, a solução é criar uma nova com
o conteúdo necessário. No entanto, se essa tupla tiver um elemento mutável,
como uma lista, o elemento mutável poderá ser alterado.
Figura 3. Exemplo de uma tupla.
Ao utilizar uma tupla, a não ser que ela seja vazia, é necessário utilizar
uma vírgula, mesmo se houver um único elemento, pois o operador que define
a tupla é a vírgula. É indicado o uso de parênteses nas tuplas; assim, ficará
mais fácil identificá-las. Veja os exemplos a seguir.
dias_da_semana = ("domingo", "segunda", "terça", "quarta", )
t = ("11", "quarta-feira", "Janeiro", 2019)
t = ("x", "y", 10, 20, "c").
3Operações e métodos de lista (Python)
A vírgula tem várias funções na linguagem de programação Python, po-
dendo ser avaliada após outras operações. Observe na Figura 4 o uso do
operador * em uma tupla de elemento único.
Figura 4. Exemplo do operador * em uma tupla.
Desempacotamento de listas/tuplas
Listas e tuplas são muito úteis quando precisamos armazenar vários valores
em uma única variável e queremos ter fácil acesso aos mesmos. No entanto,
existem situações em que precisamos transferir os valores de uma lista/tupla
para variáveis individuais. Em uma linguagem de programação tradicional,
escreveríamos um código como o da Figura 5.
Figura 5. Copiando valores de uma lista para variáveis individuais.
Operações e métodos de lista (Python)4
Em Python, isso é muito mais simples, graças à operação de desempacota-
mento. Essa operação permite atribuir os elementos armazenados em uma tupla
ou lista a diversas variáveis. A Figura 6 mostra como fazer isso em Python.
Figura 6. Desempacotamento de tuplas/listas.
Quando utilizar uma lista ou uma tupla
À primeira vista, listas e tuplas podem ser muito parecidas; porém, existem
diferenças entre elas que devem ser lembradas antes de se iniciar a utilização
das mesmas ou de escolher entre uma e outra. Para Cuducos (2018), as listas
ocupam mais espaço em memória; isso porque permitem que mais itens sejam
inseridos nelas rapidamente, sem que haja preocupação. As tuplas necessitam
de menos memória, porém, não permitem inclusão ou exclusão de itens — por
isso, ocupam somente o necessário de memória.
Basicamente, listas e tuplas se diferenciam por características bastante
simples.
� Uma tupla é imutável, e uma lista é mutável.
� As tuplas são mais eficientes em termos de memória.
� As listas têm vários métodos internos úteis.
As tuplas são mais eficientes do que as listas de informações que não serão
alteradas, pois elas utilizam menos memória e não mudam de forma inesperada.
No entanto, as listas costumam ser melhores para informações que precisarão
ser alteradas, porque podem ser manipuladas de diferentes maneiras.
5Operações e métodos de lista (Python)
Aprenda mais sobre listas e tuplas acessando o link a seguir.
https://qrgo.page.link/E7nme
Para escolher entre o uso de listas e tuplas, são seguidas algumas convenções
definidas pela comunidade Python, explicitadas no Quadro 1.
Uso de tuplas Uso de listas
� Chaves de sequência (chaves de
sequência de dicionário).
� Funções que requerem que os
argumentos sejam passados nas
tuplas.
� Dados distintos — não precisam
ser todos iguais.
� Listas de objetivos mutáveis devem
ser evitadas, para não ocorrer
erros ao se tentar alterar objetos
mutáveis.
Quadro 1. Diferenças entre o uso de tuplas e o uso de listas
Caso você tenha que acessar um banco de dados, os campos de um registro podem
ser retornados como uma tupla, mas os próprios registros devem ser retornados como
uma lista. Desse modo, o resultado da consulta retornada de um banco de dados será
uma lista de tuplas.
Operações e métodos de lista (Python)6
Operações e métodos em Python
Operações em listas
Listas são variáveis como quaisquer outras em Python, sendo, portanto, sujeitas
aos mesmos operadores empregados com as demais variáveis. Mas, pela sua
natureza diferente (a lista é uma variável que armazena diversos valores),
esses operadores podem ter efeitos diferentes. A seguir, serão apresentados
os operadores e como eles atuam nas listas.
Operador +
Esse operador tem o papel de concatenar listas – ou seja, realiza a operação
de unir o conteúdo de duas listas (Figura 7).
Figura 7. Exemplo do operador +.
Operador *
De maneira parecida com uma multiplicação, o operador * repete uma lista
um determinado número de vezes, como na Figura 8.
Figura 8. Exemplo do operador *.
Nesse exemplo, a lista [0] é repetida quatro vezes; já a lista [1, 2, 3]
é repetida três vezes.
7Operações e métodos de lista (Python)
Fragmentando listas
Fragmentar uma lista significa retirar uma fatia de uma lista ou tupla, ou seja,
realizar a extração de um número de elementos de dentro da lista ou tupla.
O operador slice (:) pode ser observado na Figura 9.
Figura 9. Exemplo do slice.
Na Figura 9, temos três exemplos da utilização do slice.
� Em lista[1:3], estamos informando que a fatia (slice) deve ini-
ciar no segundo elemento da lista (listas iniciam no índice 0) e deve
terminar no quarto elemento, mas sem incluí-lo. De acordo com o
resultado da execução, esse comando resulta em uma lista com dois
elementos, correspondentes ao segundo e ao terceiro elementos da
listaoriginal.
� Em lista[:4], como não especificamos o primeiro valor, iniciamos
no primeiro elemento da lista e terminamos no quinto elemento, sem
incluí-lo, resultando em uma lista com os quatro primeiros elementos
da lista original.
� Por último, em lista[3:], o slice é executado a partir do quarto
elemento; como o segundo parâmetro não foi especificado, vamos até
o final da lista original.
Operações e métodos de lista (Python)8
Métodos em listas
A linguagem de programação Python fornece métodos para operar em listas.
Um método é como uma função, exceto a parte que “pertence” a um objeto
específico; quando a função é chamada, ela é qualificada com o nome do
objeto. Os métodos, além de se parecerem com uma função, auxiliam na
escrita dos códigos, facilitando o desenvolvimento de determinadas ações
em um código – por exemplo: colocá-lo em ordem crescente ou decrescente,
inserir um número ao final de uma lista, alterar um lugar, etc.
Quando se necessita chamar um método de lista, é necessário digitar o nome
da lista, um ponto, o nome do método e parênteses. Os parênteses indicam os
argumentos necessários ao método, sendo que alguns métodos não exigem
ou utilizam argumentos. Observe o exemplo a seguir:
list_name.method_name(arguments)
Existem alguns métodos de listas que são mais populares e costumam
ser utilizados com maior frequência. Dentre eles, destacam-se os seguintes,
conforme apontam Maruch e Maruch (2006):
� Método append(x): esse método possibilita adicionar um item ao
fim de uma lista, alterando a lista. Por exemplo: adicionar a string
'maçã' à lista 'cesta'.
>>> cesta = ['limão', 'banana', 'laranja']
>>> cesta.append('maçã')
>>> print(cesta)
['limão','banana','laranja','maçã']
� Método count(value): esse método permite verificar o número
de vezes que um valor ocorre em uma lista; por exemplo, é possível
verificar quantas vezes a string 'maçã' aparece.
>>> cesta = ['limão', 'banana', 'laranja', 'maçã']
>>> cesta.count('maçã')
1
9Operações e métodos de lista (Python)
� Método extend(x): esse método possibilita adicionar a uma lista o
conteúdo de outro objeto de sequência ou iterável (objeto cujos elementos
podem ser recuperados um por vez). Caso o iterável seja uma string,
cada caractere é adicionado individualmente. Neste exemplo, cada
caractere da string 'pera' é adicionado individualmente:
>>> x = ['maçã', 'limão', 'banana', 'laranja']
>>> x.extend('pera')
>>> x
['maçã', 'limão', 'banana', 'laranja', 'p', 'e', 'r', 'a']
� Método remove(x): esse método permite excluir a primeira ocorrência
de cada item em uma lista. Caso o item não seja encontrado, é gerado
um ValueError. Observe o exemplo abaixo com a string 'maçã':
>>> x = ['maçã', 'limão', 'banana', 'laranja']
>>> x.remove('limão')
>>> x
['maçã', 'banana', 'laranja']
� Métodos sort( ) e reverse( ): são utilizados para alterar a
própria lista. O método sort( ) propõe uma ordenação padrão em
ordem alfabética para listas que contenham texto, números, entre outros
elementos. Já o método reverse( ) inverte as posições dos itens
de uma lista.
>>> x = ['maçã', 'limão', 'banana', 'laranja']
>>> x.sort()
>>> x
['banana', 'laranja', 'limão', 'maçã']
>>> x.reverse()
>>> x
['maçã', 'limão', 'laranja', 'banana']
Operações e métodos de lista (Python)10
As listas são mutáveis; sendo assim, é importante fazer uma cópia antes de iniciar
operações que dobrem e fragmentem listas. O operador de fragmentação, quando
estiver do lado esquerdo de uma operação de atribuição, é capaz de atualizar diversos
elementos de uma lista ao mesmo tempo.
Uso das listas e de seus métodos em
problemas computacionais
As listas podem ser utilizadas em diferentes aplicações de problemas com-
putacionais, a partir de suas diversas operações, como as listadas a seguir.
� Contar o número de vezes que um determinado elemento aparece dentro
de uma lista.
� Contar elementos.
� Inserir um elemento ao fim da lista.
� Inserir um elemento em uma determinada posição.
� Concatenar listas (uma ou duas).
� Excluir um elemento que está em uma determinada posição, ou que
tenha um determinado valor.
� Buscar a posição de um elemento dentro de uma lista, bem como ordená-
-la ou buscar saber se um elemento está ou não dentro da lista.
A seguir, serão abordadas algumas listas e seus métodos em problemas
computacionais com o uso do ambiente de programação e da linguagem
Python, trazendo exemplos de códigos e suas explicações.
Observe a primeira aplicação na Figura 10. Será possível fazer com que o
código apresentado conte o número de vezes que o algarismo 7 aparece na lista?
11Operações e métodos de lista (Python)
Figura 10. Exemplo de contagem utilizando uma lista.
A aplicação apresentada exemplifica o uso de uma lista para que o numeral 7
possa ser contabilizado. Ao executar o código, o resultado exibido é o número
de vezes que o número 7 aparece, conforme pode ser visualizado na saída
do programa. A instrução len( ) é responsável pela leitura da quantidade
de caracteres em um string; posteriormente, o comando condicional if é
inserido para verificar se o número em questão é o numeral 7, e cada número
da lista é avaliado.
Outra alternativa para a contagem de elementos é o método count( ),
conforme apresentado no início deste capítulo. Veja a aplicação apresentada
na Figura 11.
Figura 11. Exemplo do método count( ).
O código usa o método count( ) para a contagem de elementos, junta-
mente com um ponto e o nome da lista (lista.count(7)). Posteriormente,
o número de ocorrências do número 7 é impresso na saída de execução do
programa.
Operações e métodos de lista (Python)12
O exemplo a seguir utiliza o método append( ) para adicionar um
determinado elemento ao final da lista. Observe a Figura 12, que exemplifica
o método.
Figura 12. Exemplo do método append( ).
List comprehension
Até o momento, aprendemos sobre os métodos disponíveis nas listas e sobre
como os operadores +, * e slice atuam em listas. Em todos os nossos exem-
plos, nossas listas foram criadas declarativamente, elemento a elemento:
lista = ['1','2','3','4']. Agora, vamos aprender como criar
listas baseadas em outras listas e/ou objetos iteráveis, com a possibilidade de
aplicar filtros de maneira mais eficiente. Em Python, isso é chamado de list
comprehension.
O exemplo da Figura 13 utiliza a list comprehension para filtrar uma lista,
gerando uma nova lista.
Figura 13. Exemplo de lista com filtro.
13Operações e métodos de lista (Python)
Na Figura 13, pode ser observada uma lista com notas variadas; na linha
seguinte do código, utiliza-se a list comprehension para filtrar as notas iguais
a zero. Ao executar o código, as notas válidas são apresentadas — ou seja,
aquelas que são maiores do que zero.
E se você quisesse organizar esses números em ordem decrescente ou
crescente, como deveria proceder com o código dessa lista? O código ilustrado
na Figura 14 foi elaborado a partir dos seguintes itens:
� notas — todas as notas;
� notas_validas — a partir do filtro, ficou determinado que somente
seriam válidas notas maiores do que zero;
� notas_org — a função sorted foi chamada com o intuito de que as
notas válidas fossem organizadas em ordem crescente.
Figura 14. Exemplo de lista com filtro e organização em ordem crescente.
Além da função sorted( ) para a organização da lista em ordem cres-
cente, outros métodos poderiam ser utilizados, por exemplo, para determinar:
o número de notas, o número de notas abaixo da média, o número de notas
acima da média, ou mesmo o número de notas máximas. Se as funções citadas
fossem utilizadas em uma lista de notas por um professor, elas poderiam di-
minuir o trabalho manual, bem como agilizar o controle das notas dos alunos.
Operações e métodos de lista (Python)14
Conforme pode ser observado, as listas podem ser utilizadas em diferentes
situações do cotidiano, para facilitar atividades do dia a dia. Com a linguagem
de programação no ambientePython, é possível organizar atividades que,
manualmente, seriam mais demoradas de fazer. Assim, com apenas um ou
dois comandos, é possível economizar tempo e desenvolver os trabalhos com
maior precisão.
Operações com listas
Ao trabalhar com notas de avaliações, por exemplo, é possível que a média dos alunos
seja calculada por meio de códigos com a linguagem Python. Pense na seguinte
situação: um professor faz cinco trabalhos durante o semestre, cada um valendo
10 pontos. Para obter a nota final dos alunos, ele pode digitar as notas obtidas ao
término dos cinco trabalhos e dividir por 5. Observe o exemplo no código a seguir.
BARRY, P. Use a cabeça!: Python. Rio de Janeiro: Alta Books, 2012. 492 p. (Série Use a
Cabeça).
CUDUCOS, E. Tuplas e Listas no Python. Eduardo Cuducos, São Paulo, 13 jun. 2018. Dis-
ponível em: https://cuducos.me/2018/06/13/tuplas-e-listas-no-python.html. Acesso
em: 27 jul. 2019.
MARUCH, S.; MARUCH A. Python for dummies. New York: Wiley, 2006. 432 p.
15Operações e métodos de lista (Python)
Leituras recomendadas
BRAGANHOLO, V. Manipulação de listas. Niterói: Instituto de Computação, Universidade
Federal Fluminense, 2016. 67 p. (Notas de aula). Disponível em: http://www2.ic.uff.
br/~vanessa/material/prog-python/08-Listas.pdf. Acesso em: 27 jul. 2019.
GRUPO PROGRAMA DE EDUCAÇÃO TUTORIAL. Introdução a programação com Python.
São Carlos: IFSP, 2016. 28 p. Disponível em: http://ifspsaocarlos.edu.br/portal/arqui-
vos/2016.05.04_Apostila_Python_-_PET_ADS_São_Carlos.pdf. Acesso em: 27 jul. 2019.
ORESTES, Y. Operações básicas com listas no Python. Alura – Cursos Online de Tecnologia,
São Paulo, 10 maio 2018. Disponível em: https://blog.alura.com.br/operacoes-basicas-
-com-listas-no-python/. Acesso em: 27 jul. 2019.
SPAK, F. Como trabalhar com listas em Python. DevMedia, Rio de Janeiro, 2016. Disponí-
vel em: https://www.devmedia.com.br/como-trabalhar-com-listas-em-python/37460.
Acesso em: 27 jul. 2019.
Operações e métodos de lista (Python)16