Instituto Federal de Mato Grosso do SulJunho/2024
08. Listas
Construção de Algoritmos
Prof. Rodrigo Duran
Nesta aula vamos:
-
Aprender a manipular listas e suas ações
Vamos observar como variáveis podem armazenar mais de um valor (elemento) utilizando listas e como manipular essas listas utilizando tanto índices quanto ações de listas em Python.
Variáveis: só pode haver um?
Uma variável Um local nomeado para um único valor na memória do computador só pode armazenar um valor (em um dado momento)... certo?
numero = 0name = "Construção de Algoritmos"numero = 3
print(numero)
Coleções
Entretanto, em várias situações é desejável que o computador manipule informações que são relacionadas entre si. Por exemplo:
- Medições de temperatura no decorrer do ano
- População de uma cidade durante uma década
- Lista de compras, listas de tarefas
- Suas notas na disciplina de Construção de Algoritmos.
Para armazenar esse tipo de informação, nós utilizamos coleções. Uma coleção pode conter, por exemplo, todos os seus amigos no WhatsApp. Um valor armazenado em uma coleção é chamado de elemento. Um elemento pode ser um único contato na sua lista de contatos, por exemplo.
Criando Listas
Um dos tipos de coleções em Python é a listauma coleção de determinado tamanho, incluindo tamanho 0 (sem elementos), que referencia a ordem de seus elementos por um índice.. Listas são ordenadas, mutáveis, e permitem valores duplicados. Para criar uma lista basta declarar uma variável inicializando-a com os valores entre [ ]. Cada elemento dentro da lista é separado por virgulas.
meusNumeros = [1, 2 , 3, 4]contatinhos = ["José", "Vitor", "André", "Fabio"]vazio = []
Imprimindo Listas
Você pode imprimir uma variável lista
frutas = ["Banana", "Laranja", "Maçã", "Manga"]
print(frutas)Ou imprimir cada um de seus elementos
print(frutas[1])print(frutas[3])print(frutas[4])Manipulando Listas
Os elementos de uma lista podem ser manipulados como uma variável
numeros = [1, 3, 5 ,7, 9]
print(numeros[0])print(numeros[0]+numeros[1])print(numeros[2]+ 20)print(numeros[1:3])print(numeros[:3])print(numeros[2:])Visualizando Listas
QUIZ!
A lista está corretamente criada?
coisas = ["Meias" "Tênis" "Rolha"]
print(coisas)
QUIZ!
A lista está corretamente criada?
impar = {1, 3, 5, 7, 9}
print(impar)
QUIZ!
O que será impresso no console pelo programa abaixo?
pares = [2, 8, 0, 4, 6, 10]
print(pares)
- pares
- 2
- []
- 10
- 2, 8, 0, 4, 6, 10
QUIZ!
O que será impresso no console pelo programa abaixo?
pares = [2, 8, 0, -1, 6, 10]
x = pares[2+2]
print(x)
- Undefined
- 8
- 6
- -1
- 0
Manipulando listas
Você pode alterar, adicionar ou remover elementos de uma lista...
contatinhos = ["José", "Vitor", "André", "Fabio"]
contatinhos[1] = "Paulo"contatinhos.append("Michael")contatinhos.insert(1,"Carlos")print(contatinhos.pop())print(contatinhos.pop(1))print(contatinhos.remove("Paulo"))
if ("André" in contatinhos):
print("André presente!")
contatinhos.clear() frutas = ["maçã", "banana", "cereja", "kiwi", "manga"]
frutascoma = [f for f in frutas if "a" in f] quadrados = [x*x for x in range(10)] frutas2 = frutascoma.copy() frutas3 = frutas + frutas2QUIZ!
O que será impresso no console pelo programa abaixo?
avengers = ["Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman"]
avengers[3] = "Scarlet Witch"
print(avengers)
- ["Captain America", "Hulk", 3, "Black Widow", "Hawkeye", "Ironman"]
- ["Captain America", "Hulk", "Scarlet Witch", "Black Widow", "Hawkeye", "Ironman"]
- ["Captain America", "Hulk", "Thor", "Scarlet Witch", "Hawkeye", "Ironman"]
- ["Captain America", "Hulk", "Thor", 3, "Hawkeye", "Ironman"]
QUIZ!
O que será impresso no console pelo programa abaixo?
avengers = ["Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman"]
print(avengers.pop())
- ["Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman"]
- ["Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye"]
- ["Captain America", "Thor", "Black Widow", "Hawkeye", "Ironman"]
- ["Hulk", "Thor", "Black Widow", "Hawkeye"]
QUIZ!
O que será impresso no console pelo programa abaixo?
avengers = ["Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman"]
avengers.append("Spiderman")
print(avengers)
- ["Spiderman", "Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman"]
- ["Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman", "Spiderman"]
- ["Captain America", "Spiderman", "Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman"]
- ["Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye", "Spiderman", "Ironman"]
QUIZ!
O que será impresso no console pelo programa abaixo?
avengers = ["Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman"]
avengers.append("Spiderman")
avengers.pop(0)
avengers.append("Vision")
avengers.pop()
print(avengers)
- ["Spiderman", "Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye"]
- ["Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman", "Vision"]
- ["Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman", "Spiderman", "Vision"]
- ["Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman", "Spiderman"]
Propriedades e funcões úteis
Tamanho de uma lista
legumes = ["cebola", "alho", "quiabo"]
print(len(legumes))Inidice de um determinado elemento
indice = legumes.index("alho")
print(indice)indice2 = legumes.index("cenoura")
print(indice2)Invertendo a ordem de uma lista
legumes.reverse()
print(legumes)Ordenando uma lista
legumes = ["cebola", "alho", "quiabo", "cenoura"]
legumes.sort()
print(legumes)legumes = ["cebola", "alho", "quiabo", "cenoura"]
legumes.sort(key=len)
print(legumes)QUIZ!
O que será impresso no console pelo programa abaixo?
avengers = ["Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman"]
avengers.sort()
print(avengers)
- ['Hulk', 'Thor', 'Hawkeye', 'Ironman', 'Black Widow', 'Captain America']
- ['Black Widow', 'Captain America', 'Hulk', 'Hawkeye', 'Ironman', 'Thor']
- ['Hulk', 'Thor', 'Hawkeye', 'Ironman', 'Captain America'], 'Black Widow'
- ['Black Widow', 'Captain America', 'Hawkeye', 'Hulk', 'Ironman', 'Thor']
QUIZ!
O que será impresso no console pelo programa abaixo?
avengers = ["Captain America", "Hulk", "Thor", "Black Widow", "Hawkeye", "Ironman"]
westcoastavengers = avengers[3:]
print(westcoastavengers)
- ["Black Widow", "Hawkeye", "Ironman"]
- ["Hawkeye", "Ironman"]
- ["Thor", "Black Widow", "Hawkeye", "Ironman"]
Propriedades e funcões úteis
Criando uma lista a partir de uma string
pacote = "Rodrigo|IFMS|Londrina|PR"
informacao = pacote.split("|")
print(informacao)Copiando uma variável lista para outra variável
numeros = [1, 2, 3, 5]
nnum = list(numeros)
print(nnum)nnum = numeros
numeros.append(6)
print(numeros, nnum)Acessando o primeiro elemento da lista
frutas = ["abacaxi", "morango", "banana", "kiwi"]
primeiro = frutas[0]
print(primeiro)Acessando o último elemento da lista
frutas = ["abacaxi", "morango", "banana", "kiwi"]
ultimo = frutas[len(frutas)-1]
print(ultimo)
ultimo = frutas[-1]
print(ultimo)
penultimo = frutas[-2]
print(penultimo)
QUIZ!
O que será impresso no console pelo programa abaixo?
mxyzptlk = "msgpisegredopialgpi2"
decode = mxyzptlk.split("pi")
print(decode)
- "msg pi segredo pi alg pi 2"
- "msg segredo alg 2"
- [msg, pi, segredo, pi, alg, pi, 2]
- [msg, segredo, alg, 2]
QUIZ!
Substitua o ? pelo código correspondente para copiar a lista chave na lista copia
chave = [12,37,1578,1,-3]
copia = ?
print(copia)
Template: Procurar e remover
Templates são planos (ou estereótipos) que serão frequentemente utilizados para solucionar um determinado problema em um determinado contexto.
No caso do template de procurar e remover temos como um problema remover um item qualquer de uma coleção espera-se como resultado a lista sem o item desejado ou uma mensagem de erro caso o item não exista dentro da lista.
