Módulo: Python
Aula 2
© Copyright 2018-2019 [Link] - All Rights
Tema da aula:
Aula 1 - Sequências
● Listas
● Tuplas
● Ranges
● Strings
● Converter sequências
● Operações com sequências
● Funções úteis para sequências
© Copyright 2018-2019 [Link] - All Rights Reserved
O que são sequências?
● Sequência é uma coleção ordenada de elementos, onde cada elemento é
identificado por um índice
● Sequências são estruturas de dados, maneiras de guardar e organizar
nossos dados dentro do programa
© Copyright 2018-2019 [Link] - All Rights Reserved
O que é lista?
● Uma sequência mutável de elementos, que pode conter valores de
diferentes tipos, como números, strings, outros objetos, etc
● Geralmente é usada para guardar vários valores do mesmo tipo, de forma
homogênea, mas isso não é uma regra
© Copyright 2018-2019 [Link] - All Rights Reserved
Como criar uma lista?
● Lista vazia: lista = []
● Lista com um elemento: lista = [1]
● Lista com alguns elementos: lista = [1, 2, 3, 4, 5]
● Listas com listas dentro: lista = [0, [0, 1], [0, 1, [2]]]
● Compreensão de lista → próximo slide
© Copyright 2018-2019 [Link] - All Rights Reserved
Compreensão de lista
● Sintaxe:
lista = [expressão for elemento in iterável if condição]
● Exemplos:
cubos = [x**3 for x in range(10)]
pares = [n for n in cubos if n%2 == 0]
lista_de_a = ['a' for _ in range(10)]
filtrado = [x for x in ['a', 2, 3, 5.6, [5]] if type(x) == int]
© Copyright 2018-2019 [Link] - All Rights Reserved
O que é tupla?
● uma sequência imutável de elementos, que é semelhante a uma lista,
mas não pode ser modificada depois de criada
● Geralmente é usada para guardar vários valores de tipos diferentes, ou
que não precisam ou não devem ser alterados, mas isso não é uma regra
© Copyright 2018-2019 [Link] - All Rights Reserved
Como criar uma tupla?
● Tupla vazia: tupla = ()
● Tupla com um elemento: tupla = (1,)
● Tupla com alguns elementos: tupla = (1, 2, 3, 4, 5)
● Tupla com tuplas dentro: tupla = (0, (0, 1), (0, 1, (2,)))
● Parênteses só são obrigatórios na tupla vazia e na tupla de um único
elemento
© Copyright 2018-2019 [Link] - All Rights Reserved
O que é range?
● Range é o que usamos na aula passada junto com o for para fazer
repetições no código
● Range é uma sequência imutável de números, que é definida com
range(), que pode receber valor de início, fim e passo
© Copyright 2018-2019 [Link] - All Rights Reserved
Strings são sequências
● Strings são sequências imutáveis de caracteres, como palavras ou frases
● O que aprendemos aqui também se aplica às strings do Python
© Copyright 2018-2019 [Link] - All Rights Reserved
Empacotamento e desempacotamento
● nome, idade, telefone, endereço = 'Jorge', 30,
'88245678', 'Rua Principal, 123'
● cliente = nome, idade, telefone, endereço
● nome, _, telefone, _ = cliente
● nome, *resto = cliente
© Copyright 2018-2019 [Link] - All Rights Reserved
Converter sequências
● tupla → lista: lista = list((1, 2, 3))
● range → lista: lista = list(range(0, 10))
● string → lista: lista = list('abacate')
● lista → tupla: tupla = tuple([3, 2, 1])
● range → tupla: tupla = tuple(range(1, 5))
● string → tupla: tupla = tuple('laranja')
● lista → string: string = ''.join(['m', 'a', 'ç', 'ã'])
● tupla → string: string = ''.join(('l', 'i', 'm', 'ã', 'o'))
© Copyright 2018-2019 [Link] - All Rights Reserved
Acessar sequências
● Primeiro elemento: elemento = lista[0]
● Terceiro elemento: lista[2] = elemento
● Último elemento: elemento = lista[-1]
● Penúltimo elemento: lista[-2] = elemento
© Copyright 2018-2019 [Link] - All Rights Reserved
Slicing (fatiamento)
● De elemento 2 a 4: lista1[2:5] = lista2
● De elemento -5 a -3: lista2 = lista1[-5:-2]
● Todos menos o último: lista2 = lista1[:-1]
● Do 3 em diante: lista1[3:] = lista2
● Elemento sim elemento não: lista2 = lista1[::2]
● Lista invertida: lista2 = lista1[-1::-1]
● Substituir uma parte no meio: string[1:-1] = 'hijk'
© Copyright 2018-2019 [Link] - All Rights Reserved
Outras operações com sequências
● Concatenar: [1, 2] + [3, 4, 5] → [1, 2, 3, 4, 5]
● Repetir: 'abc'*3 → 'abcabcabc' ; (0, 1)*2 → (0, 1, 0, 1)
● Presença: 'maçã' in ['mamão', 'caju', 'maçã'] → True
● Presença: 'maçã' not in ['mamão', 'caju', 'maçã'] → False
© Copyright 2018-2019 [Link] - All Rights Reserved
Funções para inserir e remover elementos
● Inserir:
No final: [Link]('morango')
No início: [Link](0, 'cacau')
Antes do elemento 2: [Link](2, 'abacaxi')
Colocar outra lista no final: [Link](['uva', 'cajá'])
● Remover:
Remover e retornar o índice 2: [Link](2)
Remover a primeira ocorrência: [Link]('uva')
© Copyright 2018-2019 [Link] - All Rights Reserved
Mais funções úteis para sequências
● Limpar: [Link]()
● Tamanho: len([1, 7, 8, 15, 2]) → 5
● Obter índice: [1, 7, 8, 15, 2].index(15) → 3
● Contar ocorrências: [2, 1, 1, 1, 4].count(1) → 3
● Somar todos os elementos: sum([10, 5, 15, 20]) → 50
● Obter menor valor: min([10, 5, 15, 20]) → 5
● Obter maior valor: max([10, 5, 15, 20]) → 20
● Inverter lista: [Link]()
● Obter lista invertida: lista2 = reversed(lista1)
© Copyright 2018-2019 [Link] - All Rights Reserved
Ordenar listas
● Em ordem ascendente:
lista = [8, 5, 14, 12]
[Link]() → [5, 8, 12, 14]
● Em ordem descendente:
lista = [8, 5, 14, 12]
[Link](reverse=True) → [14, 12, 8, 5]
© Copyright 2018-2019 [Link] - All Rights Reserved
Função split
● Em ordem ascendente:
print('O Nome do meu cachorro é Totó'.split())
→ ['O', 'Nome', 'do', 'meu', 'cachorro', 'é', 'Totó']
● Em ordem descendente:
print('Um macaco, uma águia, um peixe'.split(','))
→ ['Um macaco', ' uma águia', ' um peixe']
© Copyright 2018-2019 [Link] - All Rights Reserved
Loops for mais complexos
● No lugar de range você pode usar uma sequência
● Você pode colocar loops uns dentro dos outros
● Você pode usar for elemento in lista, ou usar range e len
lista = [[0, 1, 2], [4, 5, 6], [7, 8, 9]] lista = ['Ombro', 'Joelho', 'Costas']
soma = 0 for i in range(len(lista)):
for mini_lista in lista: print(lista[i])
for numero in mini_lista:
soma += numero
print(soma)
© Copyright 2018-2019 [Link] - All Rights Reserved
Desafio 1: Ordenação
● Crie um programa que tem uma lista desordenada no início em uma
variável e que ordena essa lista e imprime ela ordenada no final
● Use o código abaixo para gerar a lista desordenada:
from random import randint
lista = [randint(0,99) for _ in range(100)]
● Não use funções sort(), sorted(), min() ou max()
© Copyright 2018-2019 [Link] - All Rights Reserved
Desafio 2: Inserir em ordem
● Crie um programa que recebe números do usuário e vai colocando eles
em uma lista já na ordem correta
● No final, quando o usuário digitar o número zero, o programa acaba e
imprime a lista na tela
● Não use funções sort(), sorted(), min() ou max(), também não use uma
função de ordenar a lista feita por você no desafio 1, apenas insira no
lugar correto
© Copyright 2018-2019 [Link] - All Rights Reserved
Desafio 3: Recompor lista de texto
● Suponha que você recebe uma lista convertida em texto, nesse formato:
● "['O', 'Nome', 'do', 'meu', 'cachorro', 'é', 'Totó']"
● Construa um programa que recebe uma string do usuário, que contém
uma lista que foi impressa nesse formato
● Transforme esse texto de volta em uma lista do Python
● No final imprima a lista e o tipo da lista para comprovar que é mesmo uma
lista
© Copyright 2018-2019 [Link] - All Rights Reserved
Desafio 4: Cifra
● Suponha que você quer esconder um texto para que não saibam o seu
significado
● Você vai escrever um programa que recebe uma frase do usuário
● Seu programa vai inverter cada conjunto de quatro letras, para formar um
texto embaralhado, e então imprimir ele na tela, exemplo:
● Texto Inicial: 'O Nome do meu cachorro é Totó'
● Texto Final: 'oN Od emem oac urohcé ortoT ó'
© Copyright 2018-2019 [Link] - All Rights Reserved
71 3901 1052 | 71 9 9204 0134
@infi[Link]
[Link]fi[Link]
Salvador Shopping Business | Torre Europa Sala
310 Caminho das Árvores, Salvador - BA CEP:
40301-155
© Copyright 2018-2019 [Link] - All Rights