Algoritmos Listas e Tuplas
Algoritmos Listas e Tuplas
Listas e Tuplas
Algoritmos e Programação de Computadores
Zanoni Dias
2023
Instituto de Computação
Roteiro
Listas
Tuplas
Exercícios
2
Listas
Listas
3
Listas
1 a = list(range (10))
2 # a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1 a = list ()
2 # a = []
1 unicamp = list("Unicamp")
2 # unicamp = ['U', 'n', 'i', 'c', 'a', 'm', 'p ']
3 # Strings são listas de caracteres
4
Selecionando um Elemento
1 lista[i - 1]
5
Selecionando um Elemento
6
Selecionando um Elemento
1 lista[-i]
7
Selecionando um Elemento
8
Selecionando um Elemento
9
Determinando o Tamanho de uma Lista
10
Selecionando Intervalos
1 lista[start:stop:step]
11
Selecionando Intervalos
12
Selecionando Intervalos
13
Alterando um Elemento
1 lista[i - 1] = valor
• Exemplo:
14
Alterando um Trecho da Lista
• Exemplo:
1 lista = [0, 1, 2, 3, 4, 5]
2 lista [2:4] = ["A", "B"]
3 print(lista)
4 # [0, 1, 'A', 'B', 4, 5]
5 lista [2:4] = [8, 8, 8]
6 print(lista)
7 # [0, 1, 8, 8, 8, 4, 5]
8 lista [4:6] = []
9 print(lista)
10 # [0, 1, 8, 8, 5]
15
Verificando a Inclusão de um Elemento
16
Inserindo Elementos
1 animais = []
2 animais.append("Gato")
3 print(animais)
4 # ['Gato ']
5 animais.append("Cachorro")
6 print(animais)
7 # ['Gato ', 'Cachorro ']
8 animais.append("Coelho")
9 print(animais)
10 # ['Gato ', 'Cachorro ', 'Coelho ']
17
Inserindo Elementos
18
Inserindo Elementos
18
Inserindo Elementos
18
Exercício
19
Exercício
20
Obtendo a Posição de um Elemento
21
Obtendo a Posição de um Elemento
• Exemplo:
1 cinema = ["Sony Pictures", "Walt Disney",
2 "Universal Pictures", "Warner"]
3 print(cinema.index("Warner"))
4 # 3
5 print(cinema.index("Disney"))
6 # ValueError: 'Disney ' is not in list
22
Removendo Elementos
23
Removendo Elementos
• Exemplo:
24
Removendo Elementos
25
Removendo Todas as Ocorrências de um Elemento
3 lista = []
4 for i in range(n):
5 lista.append(int(input ()))
6
9 while x in lista:
10 lista.remove(x)
11
12 print(lista)
26
Removendo Elementos
27
Removendo Elementos
• Exemplo:
28
Contando Elementos
29
Contando Elementos
• Exemplo:
30
Removendo Todas as Ocorrências de um Elemento
3 lista = []
4 for i in range(n):
5 lista.append(int(input ()))
6
10 for i in range(c):
11 lista.remove(x)
12
13 print(lista)
31
Forma Compacta de Criar Listas
3 lista = []
4 for i in range(n):
5 lista.append(int(input ()))
6
10 for i in range(c):
11 lista.remove(x)
12
13 print(lista)
32
Forma Compacta de Criar Listas
12
13 print(lista)
32
Invertendo a Ordem dos Elementos
33
Ordenando Listas
1 a = [5, 3, 1, 4, 2, 6]
2 a.sort ()
3 print(a)
4 # [1, 2, 3, 4, 5, 6]
5 a.reverse ()
6 print(a)
7 # [6, 5, 4, 3, 2, 1]
34
Ordenando Listas
1 a = [5, 3, 1, 4, 2, 6]
2
5 a.sort(reverse = True)
6 print(a)
7 # [6, 5, 4, 3, 2, 1]
34
Ordenando Listas
1 a = [5, 3, 1, 4, 2, 6]
2 print(sorted(a))
3 # [1, 2, 3, 4, 5, 6]
4 print(a)
5 # [5, 3, 1, 4, 2, 6]
6 print(sorted(a)[:: -1])
7 # [6, 5, 4, 3, 2, 1]
35
Copiando Listas
1 a = [1]
2 b = a
3 b.append (2)
4 c = b
5 c.append (3)
6 print(a)
7 # [1, 2, 3]
8 print(b)
9 # [1, 2, 3]
10 print(c)
11 # [1, 2, 3]
36
Copiando Listas
1 a = [1]
2 b = a.copy ()
3 b.append (2)
4 c = b.copy ()
5 c.append (3)
6 print(a)
7 # [1]
8 print(b)
9 # [1, 2]
10 print(c)
11 # [1, 2, 3]
37
Clonando Listas
1 a = [1]
2 b = a[:]
3 b.append (2)
4 c = list(b)
5 c.append (3)
6 print(a)
7 # [1]
8 print(b)
9 # [1, 2]
10 print(c)
11 # [1, 2, 3]
38
Concatenando Listas
1 a = [1, 2]
2 b = [3, 4]
3 c = [5, 6]
4 print(a + b + c)
5 # [1, 2, 3, 4, 5, 6]
6 print(c + b + a)
7 # [5, 6, 3, 4, 1, 2]
8 print(b + c + a)
9 # [3, 4, 5, 6, 1, 2]
39
Funções Úteis para Listas Numéricas
40
Exercício
Descrição
Crie uma lista com os nomes dos super-heróis que devem participar da
Iniciativa Vingadores seguindo a ordem:
• Homem de Ferro
• Capitão América
• Thor
• Hulk
• Viúva Negra
• Gavião Arqueiro
41
Exercício
Descrição
Agora, inclua o Homem-Aranha no final da lista e imprima em qual
posição está o Thor.
42
Exercício
Descrição
Infelizmente a Viúva Negra e o Homem de Ferro não fazem mais parte
da Iniciativa Vingadores, então retire-os da lista.
43
Tuplas
Tuplas
44
Tuplas
45
Tuplas
• Declaração implícita:
• Declaração explícita:
46
Tuplas
• Declaração implícita:
1 t1 = ("a")
2 t2 = ("a" ,)
3 print(type(t1), type(t2))
4 # <class 'str '> <class 'tuple '>
5 t3 = ("a", "b", "c")
6 print(t3)
7 # ('a', 'b', 'c ')
• Declaração explícita:
1 t1 = tuple ([2019])
2 print(t1)
3 # (2019 ,)
4 t2 = tuple("MC102")
5 print(t2)
6 # ('M', 'C', '1', '0', '2')
7 # Strings também podem ser tuplas de caracteres
47
Tuplas
48
Tuplas
• Tudo o que vimos para listas também podemos aplicar para tuplas,
exceto operações, métodos ou funções que adicionem, removam ou
modifiquem elementos.
• Selecionando o primeiro elemento de uma tupla:
49
Tuplas
50
Tuplas
51
Tuplas
• Concatenando tuplas:
1 a = (1, 2)
2 b = (3, 4)
3 c = (5, 6)
4 print(a + b + c)
5 # (1, 2, 3, 4, 5, 6)
6 print(c + b + a)
7 # (5, 6, 3, 4, 1, 2)
8 print(b + c + a)
9 # (3, 4, 5, 6, 1, 2)
52
Tuplas
53
Tuplas
54
Tuplas
4 for i in range(n):
5 x = int(input("Entre com um número: "))
6 tupla = tupla + tuple ([x])
7
8 print(tupla)
55
Tuplas
4 for i in range(n):
5 x = int(input("Entre com um número: "))
6 tupla = tupla + (x,)
7
8 print(tupla)
55
Exercícios
Exercícios
56
Exercício
• Possível Resposta:
1 v = [1, 2, 3, 2, 1, 1, 2, 2, 3, 1]
2 x = int(input("Entre com um número a ser buscado: "))
3 pos = []
4 for i in range(len(v)):
5 if v[i] == x:
6 pos.append(i)
7 print(pos)
57
Exercício
• Possível Resposta:
1 v = [1, 2, 3, 2, 1, 1, 2, 2, 3, 1]
2 soma = 0
3 n = 0
4 for i in v:
5 soma = soma + i
6 n = n + 1
7 print(soma/n)
58
Exercício
• Possível Resposta:
1 v = [1, 2, 3, 2, 1, 1, 2, 2, 3, 1]
2 soma = 0
3
4 for i in v:
5 soma = soma + i
6
7 print(soma/len(v))
58
Exercício
• Possível Resposta:
1 v = [1, 2, 3, 2, 1, 1, 2, 2, 3, 1]
2
7 print(sum(v)/len(v))
58
Exercício
• Possível Resposta:
1 v = [1, 2, 3, 2, 1, 1, 2, 2, 3, 1]
2 v.sort ()
3 n = len(v)
4 if n % 2 == 1:
5 mediana = v[(n - 1) // 2]
6 else:
7 mediana = (v[(n // 2) - 1] + v[(n // 2)]) / 2
8 print(mediana)
59
Exercício
• Possível Resposta:
1 v = [1, 2, 3, 2, 1, 1, 2, 2, 3, 1]
2 moda = []
3 max = 0
4 for i in v:
5 if v.count(i) > max:
6 moda = [i]
7 max = v.count(i)
8 elif v.count(i) == max:
9 if not(i in moda):
10 moda.append(i)
11 print(moda)
60
Exercícios
61
Exercício
• Possível Resposta:
1 a = [1, 1, 2, 4, 5, 6, 8, 9, 9, 9]
2 b = [0, 1, 3, 3, 6, 7, 7, 8, 9]
3 c = []
4 while a and b:
5 if a[0] < b[0]:
6 c.append(a.pop (0))
7 else:
8 c.append(b.pop (0))
9 c = c + a + b
10 print(c)
62
Exercício
• Possível Resposta:
1 v = [4, 2, 3, 2, 1, 1, 5, 2, 3, 1]
2 u = []
3 for i in v:
4 if v.count(i) == 1:
5 u.append(i)
6 print(u)
63
Exercício
• Possível Resposta:
1 v = [4, 2, 3, 2, 1, 1, 5, 2, 3, 1]
2 u = []
3 for i in v:
4 if not(i in u):
5 u.append(i)
6 print(u)
64
Exercícios
65
Exercício
União de conjuntos
Escreva um programa que, dados dois vetores que representam dois
conjuntos A e B, construa um vetor que represente a união dos dois
conjuntos (A ∪ B).
• Possível Resposta:
1 A = [1, 2, 3, 4, 5]
2 B = [3, 4, 5, 6, 7]
3 C = list(A)
4
5 for i in B:
6 if not(i in C):
7 C.append(i)
8 print(C)
66
Exercício
Interseção de conjuntos
Escreva um programa que, dados dois vetores que representam dois
conjuntos (A e B), construa um vetor que represente a interseção dos
dois conjuntos (A ∩ B).
• Possível Resposta:
1 A = [1, 2, 3, 4, 5]
2 B = [3, 4, 5, 6, 7]
3 C = []
4
5 for i in A:
6 if i in B:
7 C.append(i)
8 print(C)
67
Exercício
Diferença de conjuntos
Escreva um programa que, dados dois vetores que representam dois
conjuntos (A e B), construa um vetor que represente a diferença dos
dois conjuntos (A \ B).
• Possível Resposta:
1 A = [1, 2, 3, 4, 5]
2 B = [3, 4, 5, 6, 7]
3 C = []
4
5 for i in A:
6 if not(i in B):
7 C.append(i)
8 print(C)
68