Listas em Python para o CNU (TI)
As listas são uma das estruturas de dados mais fundamentais e poderosas em Python. Elas oferecem uma maneira flexível e eficiente de armazenar coleções de itens. Neste artigo, vamos explorar as características e funcionalidades das listas em Python, pois este é um assunto que já caiu em provas da Cesgranrio.
Em Python, uma lista é uma coleção ordenada de itens, que podem ser de diferentes tipos. As listas são mutáveis, o que significa que você pode alterar, adicionar ou remover itens conforme necessário.
Este artigo está dividido nos seguintes tópicos
- Criando uma lista em Python
- Tipos de Itens em uma Lista
- Acesso aos Itens da Lista
- Operações com Listas
- Outros métodos ou funções importantes para listas em Python
- Iterando sobre uma Lista
- Fatiamento (Slicing) de Listas em Python
- Questões sobre Listas em Python
Criando uma lista em Python
Para criar uma lista em Python, você pode simplesmente colocar os itens entre colchetes [ ], separados por vírgulas.
![Exemplo de Lista em Python](https://dhg1h5j42swfq.cloudfront.net/2024/03/04184927/image-42.png)
Neste exemplo, criamos uma lista chamada minha_lista com cinco elementos do tipo inteiro.
Tipos de Itens em uma Lista em Python
Uma das vantagens das listas em Python é sua capacidade de armazenar uma variedade de tipos de dados. Você pode incluir praticamente qualquer tipo de item em uma lista, incluindo:
- Números inteiros e flutuantes
- Strings
- Booleanos
- Outras listas
- Tuplas
- Dicionários
- Conjuntos
- E até mesmo objetos personalizados
Essa flexibilidade torna as listas extremamente versáteis e úteis em uma ampla gama de cenários de programação.
Exemplos de Inclusão de Itens em uma Lista
Inclusão de Números e Strings
![Exemplo de Lista em Python com Números e Strings](https://dhg1h5j42swfq.cloudfront.net/2024/03/04184232/image-38.png)
Neste exemplo, a minha_lista possui 5 elementos, sendo três inteiros e duas strings. Isso mostra a grande flexibilidade que as listas possuem, pois permitem a inclusão de diferentes tipos de dados em uma mesma lista.
Inclusão de Outras Listas
![Inclusão de elementos em listas](https://dhg1h5j42swfq.cloudfront.net/2024/03/04184432/image-39.png)
Neste exemplo, criamos duas listas iniciais (lista_1 e lista_2) e depois criando uma terceira lista (minha_lista) que contém as duas listas. Ou seja, podemos ter uma lista de listas.
Inclusão de Diferentes Tipos de Dados
![Lista com diferentes tipos de dados](https://dhg1h5j42swfq.cloudfront.net/2024/03/04184619/image-40.png)
Neste exemplo, a minha_lista tem quatro elementos: um inteiro (1), uma string (“dois”), um booleano (True) e uma lista ([4, 5, 6]).
Inclusão de Objetos Personalizados
![Lista de objetos em Python](https://dhg1h5j42swfq.cloudfront.net/2024/03/04184836/image-41.png)
Por último, temos uma lista de objetos. Temos dois objetos da classe Pessoa e colocamos em uma lista, que é a lista_pessoas. Ou seja, podemos criar nossos próprios objetos e colocá-los em listas.
Acesso aos Itens da Lista
Para acessar os itens de uma lista, utilizamos os índices. O índice de um item na lista representa sua posição, começando do zero para o primeiro item, um para o segundo item e assim por diante. Você pode acessar um item específico da lista usando seu índice correspondente.
![Acessando elementos de lista](https://dhg1h5j42swfq.cloudfront.net/2024/03/04185102/image-43.png)
Além disso, é possível acessar os itens da lista usando índices negativos, onde -1 se refere ao último item, -2 ao penúltimo e assim por diante.
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04185159/image-44.png)
Operações com Listas em Python
Adição de Itens
É possível adicionar novos itens a uma lista usando o método append() ou insert().
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04185419/image-45.png)
A diferença entre os dois métodos é que o append adiciona ao final da lista, já o insert permite inserir no índice indicado como parâmetro.
Remoção de Itens
Para remover itens de uma lista, você pode usar os métodos remove() ou pop().
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04190816/image-47.png)
A diferença entre esses dois métodos é que o método pop retorna o elemento que foi removido, enquanto que o método remove apenas remove sem retornar nada.
Outros métodos ou funções importantes para listas em Python
index()
O método index() é retorna o índice do primeiro item na lista que corresponde a um valor específico.
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04191008/image-49.png)
Neste caso, o índice do elemento 2 é igual a 1, pois uma lista começa do índice 0.
count()
O método count() é conta o número de ocorrências de um item específico na lista.
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04191043/image-50.png)
Observe que existem dois elementos de valor 2 na lista, portanto o método count(2) retornará 2.
sort()
O método sort() é ordena os itens da lista em ordem crescente.
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04191130/image-51.png)
reverse()
O método reverse() é inverte a ordem dos itens da lista.
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04191248/image-52.png)
Perceba que o método reverse() apenas coloca os elementos de trás para frente, ou seja, se tivermos uma lista [2, 7, 5], ao usar o método reverse() a lista passará a ser [5, 7, 2].
len()
A função len() é usada para retornar o número de itens na lista.
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04191329/image-53.png)
Veja que minha_lista possui 4 elementos, portanto, o método len(minha_lista) retorna 4.
Iterando sobre uma Lista
Para percorrer todos os itens de uma lista, você pode usar um loop for.
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04191554/image-54.png)
Fatiamento (Slicing) de Listas em Python
O fatiamento, também conhecido como “slicing” em inglês, é uma técnica em Python que permite acessar partes específicas de uma sequência, como uma lista, uma string ou uma tupla. Com o fatiamento, você pode selecionar subconjuntos da sequência com base em índices de início, fim e passo.
A sintaxe básica do fatiamento é:
sequencia [ inicio : fim : passo ]
- inicio: O índice onde o fatiamento começará. Se não for especificado, o fatiamento começará do início da sequência.
- fim: O índice onde o fatiamento terminará (exclusivo). Se não for especificado, o fatiamento continuará até o final da sequência.
- passo: O tamanho do incremento entre os índices durante o fatiamento. Se não for especificado, o padrão é 1.
O fatiamento retorna uma nova sequência contendo os elementos selecionados da sequência original, sem modificar a sequência original.
Por exemplo, considerando a lista minha_lista = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], podemos realizar os seguintes fatiamentos:
minha_lista[2:6] retorna [2, 3, 4, 5], pois começa no índice 2 e vai até o índice 5 (exclusivo).
minha_lista[::2] retorna [0, 2, 4, 6, 8], pois seleciona todos os elementos com um passo de 2.
minha_lista[::-1] retorna [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], pois reverte a lista.
O fatiamento é uma técnica poderosa em Python, pois permite manipular partes específicas de uma sequência de maneira eficiente e concisa. É amplamente utilizado em situações onde é necessário acessar ou processar subconjuntos de uma sequência.
Exemplos de Fatiamento de Listas em Python
Agora, vamos explorar diferentes cenários. Suponha que temos a seguinte lista de exemplo:
minha_lista = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Exemplo: [1:8:2]
Neste caso, começamos do índice 1 (que é o segundo elemento da lista), vamos até o índice 8 (exclusivo) e incrementamos de 2 em 2. Isso resultará nos elementos 1, 3, 5, e 7.
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04192245/image-55.png)
Índices Negativos
Em Python, os índices negativos indicam uma contagem a partir do final da lista. Por exemplo, -1 refere-se ao último elemento, -2 ao penúltimo e assim por diante.
Fatiamento com Índices Negativos
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04192423/image-56.png)
Ausência de Índices
Se não fornecermos um índice inicial, o fatiamento começará do início da lista. Da mesma forma, se não fornecermos um índice final, o fatiamento continuará até o final da lista.
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04192524/image-57.png)
Passo Negativo
Um passo negativo inverte a direção da iteração. Isso pode ser útil para reverter uma lista.
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04192649/image-58.png)
Esses são apenas alguns exemplos de como usar fatiamento em Python para acessar subconjuntos específicos de uma lista. Essa técnica é muito útil em situações onde você precisa manipular partes específicas de uma lista de maneira eficiente.
Questões sobre Listas em Python
Questão 1
Ano: 2023 Banca: CESGRANRIO Órgão: Transpetro Prova: CESGRANRIO - 2023 - Transpetro - Técnico de Informática
Seja o seguinte programa Python:
![](https://dhg1h5j42swfq.cloudfront.net/2024/03/04192844/image-59.png)
O que será exibido no console quando esse programa for executado?
Alternativas
a) 4
b) 7
c) 8
d) 9
e) 12
Comentário:
O programa Python apresentado percorre uma lista l e, para cada elemento e dentro dela, incrementa uma variável c pelo comprimento de e. Ao final, imprime o valor de c.
Vamos analisar o programa passo a passo:
A lista l é definida como [‘abc’, [‘a’, ‘b’, ‘c’], ‘d’, [‘a’, [‘abc’, ‘d’]]].
A variável c é inicializada com o valor zero.
O programa entra em um loop for, onde cada elemento e da lista l é iterado.
Para cada elemento e da lista, o comprimento de e é calculado e somado ao valor atual de c.
O resultado é impresso no console.
A lista possui quatro elementos, quais são:
- ‘abc’: uma string de tamanho 3;
- [‘a’, ‘b’, ‘c’]: uma lista com 3 elementos;
- ‘d’: uma string de tamanho 1;
- [‘a’, [‘abc’, ‘d’]]: uma lista de tamanho 2. Aqui a banca quis confundir, mas perceba que este último elemento é uma lista que possui dois elementos:
- ‘a’
- [‘abc’, ‘d’]
Somando os comprimentos, temos:
3 (para ‘abc’) + 3 (para [‘a’, ‘b’, ‘c’]) + 1 (para ‘d’) + 2 (para [‘a’, [‘abc’, ‘d’]]) = 9
Portanto, o gabarito é a letra D, pois quando o programa for executado, o valor 9 será exibido no console.
Questão 2
Ano: 2019 Banca: CESGRANRIO Órgão: UNIRIO Prova: CESGRANRIO - 2019 - UNIRIO - Analista de Tecnologia da Informação
Considere-se uma lista L, criada em Python, da seguinte forma:
L = [-20,-10,0,10,20,30]
O comando print(L[-1::-2]) apresentará o resultado
Alternativas
a) [30, 10, -10]
b) [30, 20]
c) [-20, 10]
d) [30]
e) [20]
Comentário:
Primeiro, temos uma lista chamada L contendo os elementos -20, -10, 0, 10, 20, 30.
No comando L[-1::-2], o -1 indica o índice do último elemento da lista, ou seja, iremos percorrer a lista começando do último elemento. O -2 indica que o passo é negativo, ou seja, iremos pegar os elementos de trás para frente, pulando de dois em dois. Como não colocamos nenhum índice no meio, iremos percorrer toda a lista.
Assim, executando o fatiamento, começamos do último elemento, que é 30. Com um passo de -2, retrocedemos dois elementos de cada vez.
Dessa forma, os elementos selecionados serão 30, 10, -10.
Portanto, a letra A é a alternativa correta, pois o comando print(L[-1::-2]) na lista L=[-20,-10,0,10,20,30] resultará em [30, 10, -10].
Conclusão
As listas em Python são uma ferramenta poderosa e versátil para armazenar e manipular coleções de itens. Sua capacidade de armazenar uma variedade de tipos de dados e sua mutabilidade tornam-nas essenciais para uma ampla gama de aplicações na programação.
Neste artigo, exploramos os fundamentos das listas em Python, desde a criação de listas até operações avançadas como iteração e fatiamento. Vimos como criar listas, incluir diferentes tipos de itens nelas e acessar esses itens por meio de índices. Além disso, discutimos várias operações comuns, como adicionar e remover itens, e exploramos métodos importantes para manipulação de listas, como index(), count(), sort(), reverse() e len().
Espero que o conteúdo aqui apresentado seja de grande utilidade para sua jornada rumo à aprovação. Bons estudos!
Quer saber quais serão os próximos concursos?
Confira nossos artigos!