Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação I Aula 07 Listas Professor: Francisco Airton Curso: Sistemas de Informação Estruturas de dados • Maneira de organizar dados de maneira a facilitar seu acesso • Algumas formas são clássicas: – Listas – Arrays (vetores e matrizes) – Tuplas (registros) – Árvores • Linguagens freqüentemente possuem primitivas para construção dessas estruturas de dados • Outras estruturas de dados mais complexas podem ser construídas combinando as estruturas de dados clássicas Listas em Python • São variáveis que podem conter simultaneamente mais de um valor, inclusive de diferentes tipos – lista = [1, 'a', 'Rodrigo', 3.1415] • Na verdade, pode ser vista como uma implementação tanto de listas como de arrays – Além de acesso seqüencial, suportam também acesso direto através de índices • Listas são variedades de seqüências assim como strings e portanto têm APIs semelhantes – Podem ser indexadas e fatiadas – Podem ser concatenadas (+) e repetidas Listas em Python • Entretanto, há diferenças importantes entre listas e strings – Elementos de listas podem ser alterados individualmente mas os de strings, não • Listas constituem o tipo de agregação de dados mais versátil e comum da linguagem Python – Podem ser usadas para implementar estruturas de dados mais complexas como matrizes e árvores, por exemplo Listas: constantes e índices • Uma constante do tipo lista é escrita entre colchetes com os elementos separados por vírgula: [] # lista vazia [1,2] # lista com 2 elementos • Os elementos de uma lista podem ser de qualquer tipo, inclusive listas. Ex.: lista = [1, 'a', 'Rodrigo', 3.1415] • Os elementos de uma lista podem ser acessados por índices como strings – O primeiro elemento tem índice 0 – O último elemento tem índice -1 Listas: constantes e índices >>> lista = [1, 'a', 'Rodrigo', 3.1415] >>> lista [0] 1 >>> lista [2] 'Rodrigo' >>> lista [3] 3.1415 >>> lista [-1] 3.1415 >>> lista [0] = 2 >>> lista [2, 'a', 'Rodrigo', 3.1415] Listas: Concatenação e Repetição • O operador + pode ser usado para concatenação e o operador * para repetição >>> lista = [0]*4 >>> lista [0, 0, 0, 0] >>> lista = lista + [1]*3 >>> lista [0, 0, 0, 0, 1, 1, 1] Inicializando listas • Não é possível atribuir a uma posição inexistente de uma lista >>> vetor = [] >>> vetor [0] = 1 Traceback (most recent call last): File "<pyshell#21>", line 1, in -toplevel- vetor [0] = 1 IndexError: list assignment index out of range • Se uma lista vai ser usada como um array, isto é, vai conter um número predeterminado de elementos, é conveniente iniciá-la >>> vetor = [0]*10 >>> vetor [0] = 3 >>> vetor [3, 0, 0, 0, 0, 0, 0, 0, 0, 0] Exemplo • Faça um programa que leia 15 números e os imprima e ordem inversa a qual foram lidos. lista=[0]*15 i=0 while (i<15): lista[i]=input() i+=1 i=1 while (i<=15): print lista[-i] i+=1 Exercícios 1. Faça um programa que leia as notas dos 50 alunos de uma turma e diga ao final quais notas ficaram acima da média da turma. 2. (vetor contador): Faça um programa que leia diversos votos para 100 candidatos (votos entre 0 e 99) e ao final diga qual foi o candidato vencedor (considere que não há empate). Os votos terminam com um número inválido (negativo ou maior que 99). Obs: Altere o programa de modo a considerar a possibilidade de empates. 3. Escreva um programa que leia uma lista de x inteiros seguida de uma lista de y caracteres, criando uma terceira lista que intercale os elementos das duas listas lidas – obs1: pergunte ao usuário x e y no início – obs2: a lista que for maior deverá ser repetida sequencialmente ao final – Exemplo: x=3, y=5, l1 = [1,2,3] e l2 = ['a','b','c','d','e'], o programa deve computar a lista [1,'a',2,'b',3,'c','d','e'] 4. DESAFIO: Faça um programa que leia as informações dos 70 produtos de uma farmácia (código, preço e quantidade em estoque). Em seguida permita ao usuário entrar com código e quantidade que deseja comprar do produto até que seja entrado o código –1. Para cada código entrado diminua a quantidade do estoque (caso tenha o suficiente) se o código for válido, senão imprima mensagem de erro. Ao final da compra, diga o total a ser pago!
Compartilhar