Introdução à Programação

Documentos relacionados
Programação I Aula 9 Listas e tuplos

Listas e Tuplas. Vanessa Braganholo

24/09/2014. Prof. André Backes

Linguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings

Algoritmos e Estrutura de Dados Aula 02 Listas em Python

Aula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias

FUNDAMENTOS DA PROGRAMAÇÃO 1º Teste, 19 de abril de 2013, 1h30m

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema

Introdução à Ciência da Computação Disciplina: Prof. Edison Ishikawa Python 3.0 Aula 05 Listas

Estruturas de Dados em Python

Python: Listas. Claudio Esperança

PYTHON LISTAS. Introdução à Programação SI1

Computação 1 - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings 1/ 26

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo

Listas. Prof. Alberto Costa Neto Programação em Python

Introdução à Programação

Computação 1 - Python Aula 6 - Teórica: Listas 1/ 28

Introdução à Programação Aula 14 Dicionários

Estrutura de Dados. Diego Silveira Costa Nascimento

TCC 00308: Programação de Computadores I Manipulação de listas

MCG114 Programação de Computadores I. Strings. Strings. Strings. Strings. Strings 3/26/18. Profa. Janaína Gomide

Computação 1 - Python Aula 4 - Teórica Variáveis e Atribuição, Strings. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 30

Processamento da Informação Teoria. Exercícios sobre strings

Computação I - Python Aula 1 - Teórica: Manipulação de Strings, Tuplas e Listas

Vetores. Vanessa Braganholo

Fundamentos da Programação

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias

MCG126 Programação de Computadores II

Processamento da Informação Teoria. Strings

Computação I - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings

Python. Resumo e Exercícios P2 Parte 1

Tuplas e Dicionários. Vanessa Braganholo vanessa@ic.uff.br

Introdução à Programação / Programação I

Fundamentos da Programação

Programação I Aula 10 Processamento de listas

INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2

1 Expressões, valores e tipos 1. 2 Variáveis e atribuições 5. cálculo de expressões segue a estrutura de parênteses e as prioridades dos operadores

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

Fundamentos da Programação

Características de Python. Inteligência Artificial. Baixando e Instalando. Operadores. Variáveis. Strings 9/10/2010

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015

Programação I Aula 3 Primeiros programas

Algoritmo e Programação Matemática LAÇOS E LISTAS

Fundamentos da Programação

INFORMÁTICA PARA ENGENHARIA LISTAS E VETORES

CONCEITOS BÁSICOS DE PROGRAMAÇÃO PYTHON

Pedro Vasconcelos DCC/FCUP. Programação Funcional 5 a Aula Definições recursivas

Pedro Vasconcelos DCC/FCUP. Programação Funcional 14 a Aula Um verificador de tautologia

Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - Dicionário. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

Introdução à Computação Strings

Transcrição:

Introdução à Programação Aula 10: Listas e tuplos Rita P. Ribeiro 2016/2017 Departamento de Ciência de Computadores

Nesta aula 1. Listas 2. Tuplos INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 1

Listas

Listas Sequências ordenadas possivelmente com repetições Podem conter elementos de quaisquer tipos Os elementos são identificados pelos índices INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 2

Listas por extensão Lista com n elementos: [e1, e2,..., en] A ordem é significativa Podem ocorrer elementos repetidos Pode ser a lista vazia: [] INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 3

Operações básicas comprimento >>> len([1, dois,3]) 3 concatenação >>> [1, dois,3]+[4,5,6] [1, dois,3,4,5,6] repetição >>> 2*[1, dois,3] [1, dois,3,1, dois,3] pertença >>> 3 in [1, dois,3] True iteração >>> for x in [1, dois,3]: print(x) 1 dois 3 INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 4

Acesso aos elementos Operador de indexação: lista[i] Índices entre 0 e len(lista)-1 Índices negativos: acesso a partir do fim Índices inválidos dão um erro de execução INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 5

Exemplo >>> alimentos = [ pão, pão, queijo, queijo ] >>> alimentos[0] pão >>> alimentos[1] pão >>> alimentos[2] queijo >>> len(alimentos) 4 INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 6

Fatias lst[i:j] elementos entre i e j 1 inclusíve lst[i:] elementos entre i até ao final lst[:j] elementos do primeiro até j 1 inclusíve lst[:] todos os elementos (cópia da lista) >>> vogais = [ a, e, i, o, u ] >>> vogais[1:4] [ e, i, o ] >>> vogais[:3] [ a, e, i ] >>> vogais[3:] [ o, u ] >>> vogais[:] [ a, e, i, o, u ] INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 7

Fatias (cont.) Forma geral lst[i:j:k] elementos de i a j 1 com incrementos k Incrementos negativos: percorrer a lista ao contrário. >>> vogais[::2] # índices pares [ a, i, u ] >>> vogais[1::2] # índices ímpares [ e, o ] >>> vogais[::-1] # inverter a lista [ u, o, i, e, a ] INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 8

Percorrer os índices e elementos for i in range(len(lista)): print(i, lista[i]) Ciclo sobre índices i de 0 até len(lista) 1 Elemento lista[i] associado ao índice i INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 9

Percorrer todos os elementos for valor in lista: print(valor) Evita manipular explicitamente o índice Preferível quando necessitamos dos valores mas não dos índices INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 10

Listas são mutáveis Podemos modificar ou acrescentar elementos: >>> beatles = [1, 2, 3] >>> beatles[0] = "john" >>> beatles[2] = "ringo" >>> beatles [ john, 2, ringo ] >>> beatles[1:2] = [ paul, george ] >>> beatles [ john, paul, george, ringo ] INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 11

Remover elementos duma lista >>> beatles = [ john, paul, george, ringo ] >>> del beatles[0] >>> beatles [ paul, george, ringo ] Alternativa: >>> beatles = [ john, paul, george, ringo ] >>> beatles[0:1] = [] >>> beatles [ paul, george, ringo ] INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 12

Nomes e objectos É importante distinguir o nome da lista dos valores associados. INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 13

Nomes e objectos (1) Dois nomes, duas listas separadas: >>> a = [1,2,3] >>> b = [1,2,3] >>> a[0] = oops >>> print(a, b) [ oops, 2, 3] [1, 2, 3] INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 14

Nomes e objectos (2) Dois nomes, apenas uma lista: >>> a = [1,2,3] >>> b = a >>> a[0] = oops >>> print(a, b) [ oops, 2, 3] [ oops, 2, 3] INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 15

Nomes e objectos (3) Dois nomes, duas listas (fazendo uma cópia): >>> a = [1,2,3] >>> b = a[:] >>> a[0] = oops >>> print(a, b) [ oops, 2, 3] [1, 2, 3] INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 16

Métodos sobre listas Alguns métodos pré-definidos: append acrescentar um elemento ao final insert acrescentar um elemento numa posição remove remover um elemento sort ordenar os elementos por ordem crescente Utilização: lista.método(argumentos) Modificam a lista INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 17

Exemplos >>> beatles = [ john, paul ] >>> beatles.append( george ) >>> beatles.append( ringo ) >>> beatles [ john, paul, george, ringo ] >>> beatles.insert(0, paul ) >>> beatles [ paul, john, paul, george, ringo ] >>> beatles.sort() >>> beatles [ george, john, paul, paul, ringo ] Para obter mais informação: >>> help(list) INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 18

Listas dentro de listas As listas podem conter outras listas Podemos assim representar tabelas ou matrizes >>> matriz = [[1,2,-1], [3,1,0], [0,1,-2]] >>> matriz[1][0] 3 >>> matriz[1][0] = -3 >>> matriz [[1, 2, -1], [-3, 1, 0], [0, 1, -2]] INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 19

Tuplos

Tuplos Sequências ordenadas de elementos: (e1, e2,..., en) Acesso aos elementos por índices Ao contrário das listas, os tuplos são imutáveis INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 20

Operações básicas comprimento >>> len(( Pedro,12)) 2 concatenação >>> ( Pedro,12)+( João,14) ( Pedro,12, João,14) repetição >>> 2*( Pedro,12) ( Pedro,12, Pedro,12) pertença >>> 12 in ( Pedro,12) True iteração >>> for x in ( Pedro,12): print(x) Pedro 12 INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 21

Acesso aos elementos >>> nota = ( Pedro, 12) >>> nota[0] Pedro >>> nota[1] 12 >>> nota[0] = Joao TypeError: tuple object does not support item assignment INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 22

Atribuição a tuplos de variáveis >>> (x,y) = (5,-7) >>> x 5 >>> y -7 Ou simplesmente: >>> x,y = 5,-7 >>> x 5 >>> y -7 INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 23

Listas e tuplos combinados Vamos representar uma agenda como uma lista de pares nome/email: [( Maria João, mj@mail.pt ), ( José Manuel, jm@mail.pt ), ( João Pedro, jp@mail.pt )] Operações: acrescentar uma entrada (nome e email) procurar email pelo nome INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 24

Acrescentar uma entrada def acrescentar(agenda, nome, email): "Acrescentar um nome e email á agenda." agenda.append((nome,email)) INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 25

Procurar um nome (1) def procurar(agenda, txt): "Procurar emails por parte do nome." emails = [] for par in agenda: if txt in par[0]: # txt ocorre no nome? emails.append(par[1]) # acrescenta email return emails INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 26

Procurar um nome (2) def procurar(agenda, txt): "Procurar emails por parte do nome." emails = [] for (nome,email) in agenda: if txt in nome: # txt ocorre no nome? emails.append(email) # acrescenta email return emails INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 27

Exemplos >>> agenda = [] >>> acrescentar(agenda, "Maria João", "mj@mail.pt") >>> acrescentar(agenda,"joão Pedro", "jp@mail.pt") >>> procurar(agenda, "Maria") [ mj@mail.pt ] >>> procurar(agenda, "João") [ mj@mail.pt, jp@mail.pt ] INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 28

Usar listas ou tuplos? Utilizamos listas para sequências mutáveis (e.g. uma agenda) Utilizamos tuplos para sequências imutáveis (e.g. um par nome, telefone) Os tuplos são necessários em casos especiais: (e.g. chaves de dicionários próximas aulas) Podemos sempre converter entre os dois tipos de sequência: list(... ) converter para lista tuple(... ) converter para tuplo INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 29