Baixe Python 05 Listas e outras Slides em PDF para Engenharia de Materiais, somente na Docsity!
Python:Python:
listas listas
Rodrigo de Toledo
(adaptação do original do prof. Claudio Esperança)
Estruturas de dadosEstruturas 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 PythonListas em Python
(^) Entretanto, há diferenças importantes entre listas e strings Seqüência genérica X de seqüência de caracteres (^) 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 índicesListas: 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 -
Listas: Concatenação eListas: Concatenação e
Repetição Repetição
O operador + pode ser usado para
concatenação e o operador * para repetição
lista = [0]* lista [0, 0, 0, 0] lista = lista + [1]* lista [0, 0, 0, 0, 1, 1, 1]
Inicializando listasInicializando 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]* vetor [0] = 3 vetor [3, 0, 0, 0, 0, 0, 0, 0, 0, 0]
ExercíciosExercícios
- 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.
- (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
- Obs: Altere o programa de modo a considerar a possibilidade de empates.
- 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']
- 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!
Sobre o desafio...Sobre o desafio...
Para realizar o desafio anterior, entender os
conceitos de:
um único índice para diversos vetores (^) busca do índice
No futuro será mais fácil tratar esse desafio:
index( (^) tuplas
Lista de tamanho indefinidoLista de tamanho indefinido
Lista de tamanho indefenidoLista de tamanho indefenido
Às vezes não sabemos em tempo de
programação qual deve ser o tamanho da lista
(exemplo: “leia 50 notas” ≠ “leia notas até
uma negativa”.
Nesse caso a lista deve ir crescendo (ou
diminuindo de acordo com a necessidade.
Precisaremos de:
(^) len: para saber tamanho do vetor (^) del: para retirar um elemento da lista (^) append: para acrescentar
Len, min e maxLen, min e max
len ( lista retorna o número de elementos de lista
min (lista e max (lista retornam o menor/maior
elemento de lista
Ex.:
lista = [55, 1, 22, 99, 3, 4] min (lista) 1 len (lista) 6 max (lista) 99 max (['a', 'b', 'c']) 'c'
minmin ee maxmax
Na verdade, min e max podem ser usados também
com vários argumentos ao invés de uma lista
Ex.:
min (1,2,3,4) 1 max (3,4,5) 5 max ([],[1],['a']) ['a']
ExemploExemplo
(^) Leia uma sequência de números INTEIROS positivos terminada por um número NEGATIVO, guardando-os num vetor. Remova do vetor os números PARES. Ao final, imprima o vetor! lista = [] num = input() while (num>=0): lista.append(num) num=input() i= while i<len(lista): if lista[i]%2==0: del lista[i] else: i+= print lista
ExercíciosExercícios
- Faça o programa do jogo: “Acerte os números”. (^) Inicialmente, leia diversos números inteiros entrados pelo dono da casa de aposta, guardando numa lista. (^) Termina com número negativo (^) Em seguida o apostador poderá entrar com vários números para verificar o seu acerto. (^) Caso acerte um dos números da lista, informe do acerto e diga quantos números faltam acertar. (^) O programa termina caso o apostador erre 10 vezes ou até ele acertar todos os números.
- Altere o programa anterior para guardar os números sem que haja repetição, ou seja, caso o dono da casa de apostas tenha entrado com um número que já exista, ignore-o.
- DESAFIO: Faça um programa que mantenha o estoque do hortifruti Leguminosas. Apresente um menu com as seguintes opções: (a inserir novos produtos (b acrescentar no estoque (c baixar do estoque (d listar produtos com estoque baixo (e listar estoque de todos os produtos (f sair! (^) Para cada produto inserido, ler nome, código e quantidade inicial (^) Para acrescentar ou baixar do estoque, ler código e quantidade (^) Quando der baixa no estoque, verificar se não está negativo, nesse caso, avisar ao usuário que serão baixados apenas a quantidade atual no estoque (zerando esse produto (^) “Estoque baixo” significa que há apenas 5 ou menos produtos