Introdução
Bem-vindo a este laboratório prático sobre Listas e Tuplas em Python. Listas são uma das estruturas de dados mais fundamentais e versáteis em Python, permitindo armazenar coleções ordenadas de itens. Tuplas são semelhantes, mas com uma diferença chave: elas são imutáveis.
Ao longo deste laboratório, você aprenderá a criar listas, acessar e manipular seus elementos, e realizar operações comuns como ordenação (sorting) e iteração (looping). Você também explorará tuplas e entenderá quando usá-las em vez de listas.
Este ambiente de laboratório é um WebIDE pré-configurado. Todos os arquivos necessários para este laboratório foram criados para você no diretório /home/labex/project. Vamos começar.
Acessando Elementos da Lista
Nesta etapa, você aprenderá como recuperar elementos de uma lista usando índices e como extrair sublistas usando slicing (fatiamento). Listas são coleções ordenadas de itens contidas entre colchetes [].
Primeiro, abra o arquivo step1_access.py no explorador de arquivos à esquerda. Escreveremos nosso código neste arquivo.
Nota: Se você não está familiarizado com o uso do WebIDE (semelhante ao VS Code), aprenda primeiro neste laboratório.
Obtendo Valores com Índices
Os elementos da lista são acessados usando um índice baseado em zero, o que significa que o primeiro elemento está no índice 0.
Adicione o seguinte código a step1_access.py para criar uma lista e acessar seu primeiro elemento:
## step1_access.py
furniture = ['table', 'chair', 'rack', 'shelf']
## Acessa o primeiro elemento (índice 0)
print(furniture[0])
Para executar o script, abra um terminal no WebIDE e execute o seguinte comando:
python3 /home/labex/project/step1_access.py
Você deverá ver o primeiro elemento da lista impresso no console.
Saída:
table
Índices Negativos
Você também pode usar índices negativos para acessar elementos a partir do final da lista. O índice -1 refere-se ao último elemento, -2 ao penúltimo, e assim por diante.
Modifique step1_access.py para acessar o último elemento:
## step1_access.py
furniture = ['table', 'chair', 'rack', 'shelf']
## Acessa o último elemento (índice -1)
print(furniture[-1])
Execute o script novamente:
python3 /home/labex/project/step1_access.py
Saída:
shelf
Obtendo Sublistas com Slices (Fatiamento)
O slicing (fatiamento) permite que você obtenha uma sublista usando a sintaxe [start:end]. O índice start (início) é inclusivo, e o índice end (fim) é exclusivo.
Vamos praticar isso. Para sua tarefa de verificação, modifique step1_access.py para criar uma lista e imprimir uma fatia dela. Substitua o conteúdo existente pelo código a seguir:
## step1_access.py
furniture = ['table', 'chair', 'rack', 'shelf']
## Obtém uma sublista do índice 1 até (mas não incluindo) o índice 3
sublist = furniture[1:3]
print(sublist)
Execute o script para ver o resultado:
python3 /home/labex/project/step1_access.py
Saída:
['chair', 'rack']
Você também pode criar uma cópia de uma lista usando um slice completo [:]. Quaisquer modificações na lista original não afetarão a cópia.
## step1_access.py
spam = ['cat', 'bat', 'rat', 'elephant']
spam2 = spam[:] ## Cria uma cópia superficial (shallow copy)
spam.append('dog')
print(spam)
print(spam2)
Execute o script:
python3 /home/labex/project/step1_access.py
Saída:
['cat', 'bat', 'rat', 'elephant', 'dog']
['cat', 'bat', 'rat', 'elephant']
Depois de imprimir com sucesso a fatia ['chair', 'rack'], clique no botão Verify (Verificar) para prosseguir para a próxima etapa.
Modificando e Manipulando Listas
Nesta etapa, você explorará como gerenciar e modificar o conteúdo da lista. Isso inclui alterar valores, combinar listas e adicionar novos elementos.
Abra o arquivo step2_modify.py para começar.
Obtendo o Comprimento da Lista com len()
A função len() retorna o número de itens em uma lista.
Adicione este código a step2_modify.py:
## step2_modify.py
furniture = ['table', 'chair', 'rack', 'shelf']
print(len(furniture))
Execute o script:
python3 /home/labex/project/step2_modify.py
Saída:
4
Alterando Valores com Índices
Você pode alterar um elemento em uma lista atribuindo um novo valor ao seu índice.
## step2_modify.py
furniture = ['table', 'chair', 'rack', 'shelf']
furniture[0] = 'desk' ## Altera o primeiro elemento
print(furniture)
Execute o script:
python3 /home/labex/project/step2_modify.py
Saída:
['desk', 'chair', 'rack', 'shelf']
Concatenação e Replicação
Você pode combinar duas listas usando o operador + (concatenação) ou repetir o conteúdo de uma lista usando o operador * (replicação).
## step2_modify.py
list1 = [1, 2, 3]
list2 = ['A', 'B', 'C']
combined_list = list1 + list2
print(combined_list)
replicated_list = ['X'] * 3
print(replicated_list)
Execute o script:
python3 /home/labex/project/step2_modify.py
Saída:
[1, 2, 3, 'A', 'B', 'C']
['X', 'X', 'X']
Adicionando Valores com append() e insert()
- O método
append()adiciona um item ao final da lista. - O método
insert()adiciona um item em um índice especificado.
Para sua tarefa de verificação, vamos combinar essas operações. Substitua o conteúdo de step2_modify.py pelo código a seguir. Este script criará uma lista, adicionará um elemento ao final e inserirá outro no início.
## step2_modify.py
furniture = ['table', 'chair', 'rack', 'shelf']
## Adiciona 'bed' ao final da lista
furniture.append('bed')
## Insere 'desk' no início da lista (índice 0)
furniture.insert(0, 'desk')
print(furniture)
Execute o script para ver a lista final modificada:
python3 /home/labex/project/step2_modify.py
Saída:
['desk', 'table', 'chair', 'rack', 'shelf', 'bed']
Assim que seu script produzir a saída correta, clique em Verify.
Removendo Valores e Ordenando
Nesta etapa, você aprenderá diferentes maneiras de remover itens de uma lista e como ordenar o conteúdo de uma lista.
Por favor, abra o arquivo step3_remove.py.
Removendo Valores
Python fornece várias maneiras de remover itens de uma lista:
- Instrução
del: Remove um item em um índice específico. - Método
remove(): Remove a primeira ocorrência de um valor específico. - Método
pop(): Remove e retorna um item em um índice específico (ou o último item se nenhum índice for fornecido).
Vamos vê-los em ação. Adicione isto a step3_remove.py:
## step3_remove.py
furniture = ['table', 'chair', 'rack', 'shelf']
del furniture[2] ## Remove 'rack'
print(furniture)
furniture.remove('chair') ## Remove 'chair'
print(furniture)
Execute o script:
python3 /home/labex/project/step3_remove.py
Saída:
['table', 'chair', 'shelf']
['table', 'shelf']
Ordenando Valores com sort()
O método sort() ordena a lista no local (in place). Por padrão, ele ordena em ordem crescente.
## step3_remove.py
numbers = [2, 5, 3.14, 1, -7]
numbers.sort()
print(numbers)
letters = ['a', 'z', 'A', 'Z']
letters.sort(key=str.lower) ## Ordenação insensível a maiúsculas/minúsculas
print(letters)
Execute o script:
python3 /home/labex/project/step3_remove.py
Saída:
[-7, 1, 2, 3.14, 5]
['a', 'A', 'z', 'Z']
Para sua tarefa de verificação, você precisa criar uma lista, remover um item específico e, em seguida, ordenar os itens restantes. Substitua o conteúdo de step3_remove.py pelo seguinte:
## step3_remove.py
furniture = ['table', 'chair', 'rack', 'shelf']
## Remove o item 'rack'
furniture.remove('rack')
## Ordena a lista alfabeticamente
furniture.sort()
print(furniture)
Execute o script para ver o resultado:
python3 /home/labex/project/step3_remove.py
Saída:
['chair', 'shelf', 'table']
Depois que seu script remover e ordenar a lista corretamente, clique em Verify.
Iteração (Looping) e Técnicas Avançadas
Nesta etapa, você dominará como iterar sobre listas e usará algumas técnicas de lista avançadas, mas muito úteis.
Abra o arquivo step4_loop.py para esta seção.
Iteração com for
Um loop for é a maneira padrão de iterar sobre os itens em uma lista.
## step4_loop.py
furniture = ['table', 'chair', 'rack', 'shelf']
for item in furniture:
print(item)
Execute o script:
python3 /home/labex/project/step4_loop.py
Saída:
table
chair
rack
shelf
Obtendo Índice e Valor com enumerate()
Se você precisar tanto do índice quanto do valor durante a iteração, use a função enumerate().
## step4_loop.py
furniture = ['table', 'chair', 'rack', 'shelf']
for index, item in enumerate(furniture):
print(f'index: {index} - item: {item}')
Execute o script:
python3 /home/labex/project/step4_loop.py
Saída:
index: 0 - item: table
index: 1 - item: chair
index: 2 - item: rack
index: 3 - item: shelf
Os Operadores in e not in
Estes operadores permitem verificar se um valor existe dentro de uma lista.
## step4_loop.py
furniture = ['table', 'chair', 'rack', 'shelf']
print('rack' in furniture)
print('bed' not in furniture)
Execute o script:
python3 /home/labex/project/step4_loop.py
Saída:
True
True
Iterando em Múltiplas Listas com zip()
A função zip() é perfeita para processar múltiplas listas em paralelo. Ela emparelha elementos de cada lista.
Para sua tarefa de verificação, você usará zip() para combinar duas listas. Substitua o conteúdo de step4_loop.py pelo código a seguir. Ele iterará sobre os itens de mobiliário e seus preços correspondentes, imprimindo uma string formatada para cada par.
## step4_loop.py
furniture = ['table', 'chair', 'rack', 'shelf']
price = [100, 50, 80, 40]
for item, amount in zip(furniture, price):
print(f'The {item} costs ${amount}')
Execute o script para ver a saída combinada:
python3 /home/labex/project/step4_loop.py
Saída:
The table costs $100
The chair costs $50
The rack costs $80
The shelf costs $40
Assim que seu script estiver funcionando corretamente, clique em Verify.
Compreendendo Tuplas (Tuples)
Nesta etapa final, você aprenderá sobre o tipo de dado tupla (tuple). Tuplas são semelhantes a listas, mas são imutáveis, o que significa que seu conteúdo não pode ser alterado após a criação.
Abra o arquivo step5_tuple.py.
O Tipo de Dado Tupla
Tuplas são definidas com parênteses () em vez de colchetes. Como são imutáveis, você não pode alterar, adicionar ou remover elementos depois que a tupla é criada. Isso as torna mais eficientes em termos de memória e úteis para dados que não devem ser modificados.
Você pode acessar elementos de tuplas usando índices e fatiamento (slicing), assim como com listas.
## step5_tuple.py
furniture = ('table', 'chair', 'rack', 'shelf')
## Acessando elementos
print(furniture[0])
## Fatiamento (Slicing)
print(furniture[1:3])
## Obtendo o comprimento
print(len(furniture))
Execute o script:
python3 /home/labex/project/step5_tuple.py
Saída:
table
('chair', 'rack')
4
Se você tentar modificar uma tupla, Python levantará um TypeError. Por exemplo, furniture[0] = 'desk' causaria um erro.
Convertendo entre list() e tuple()
Você pode facilmente converter entre listas e tuplas usando as funções construtoras list() e tuple().
Para sua tarefa de verificação, você converterá uma lista em uma tupla. Substitua o conteúdo de step5_tuple.py pelo seguinte código:
## step5_tuple.py
## Uma lista de itens
my_list = ['cat', 'dog', 5]
## Converte a lista para uma tupla
my_tuple = tuple(my_list)
print(my_tuple)
Execute o script para ver a tupla resultante:
python3 /home/labex/project/step5_tuple.py
Saída:
('cat', 'dog', 5)
Você também pode converter uma tupla de volta para uma lista se precisar modificá-la:
## step5_tuple.py
my_tuple = ('cat', 'dog', 5)
my_list = list(my_tuple)
print(my_list)
Execute o script:
python3 /home/labex/project/step5_tuple.py
Saída:
['cat', 'dog', 5]
Assim que seu script converter a lista para uma tupla com sucesso e a imprimir, clique em Verify para completar o laboratório.
Resumo
Parabéns por completar o laboratório! Você adquiriu uma compreensão sólida das estruturas de dados centrais do Python: listas e tuplas.
Você aprendeu a:
- Criar listas e acessar elementos usando índices positivos e negativos.
- Extrair sublistas usando fatiamento (slicing).
- Modificar listas alterando valores, adicionando elementos com
append()einsert(), e removendo-os comdel,remove()epop(). - Ordenar listas no local (in-place) usando o método
sort(). - Iterar sobre listas de forma eficaz usando loops
for,enumerate()ezip(). - Entender a natureza imutável das tuplas e converter entre listas e tuplas.
Estas habilidades são fundamentais para qualquer programador Python e serão inestimáveis em seus projetos futuros.



