Apostila de Programação I Lab. de Programação de Computadores I - Parte 1 - Profa. Flávia Pereira de Carvalho Julho de 2013 Apostila de Algoritmos e Programação – semestre2 Sumário Página 1 LISTAS EM PYTHON .......................................................................................................................................................3 1.1 DECLARAR UMA LISTA................................................................................................................................................... 3 1.2 ACESSAR UMA LISTA ..................................................................................................................................................... 4 1.3 MODIFICAR UMA LISTA .................................................................................................................................................. 5 1.4 EXEMPLOS COM LISTAS EM PYTHON .............................................................................................................................. 5 1.5 MAIS EXEMPLOS COM LISTAS: USO DE FATIAS .............................................................................................................. 6 1.6 INICIALIZANDO LISTAS .................................................................................................................................................. 8 1.7 FUNÇÕES PRÉ-DEFINIDAS EM PYTHON .......................................................................................................................... 9 1.8 COMO PREENCHER UMA LISTA USANDO O LAÇO WHILE EM PYTHON .......................................................................... 13 1.9 COMO PREENCHER UMA LISTA USANDO O LAÇO FOR EM PYTHON .............................................................................. 14 1.10 APAGAR ELEMENTOS DE UMA LISTA ......................................................................................................................... 15 1.11 COPIAR LISTAS EM PYTHON ....................................................................................................................................... 17 1.12 COMPARAR LISTAS EM PYTHON ................................................................................................................................. 18 1.13 TRANSFORMAR O RESULTADO DE RANGE EM UMA LISTA .......................................................................................... 19 1.14 LISTAS COM STRINGS: ACESSANDO LETRAS ............................................................................................................... 20 REFERÊNCIAS .................................................................................................................................................................... 21 Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 2 Apostila de Algoritmos e Programação – semestre2 1 Listas em Python Lista é um tipo de variável que permite armazenar vários valores, acessados individualmente por um índice. É uma estrutura de dados similar a arrays ou vetores e corresponde a posições de memória, identificadas por um único nome, individualizadas por índices, onde cada posição possui um conteúdo chamado de elemento. O nome de uma variável composta segue as mesmas regras das variáveis simples. O nome referese, coletivamente, a todos os elementos da variável composta. Para referência de um elemento específico é necessário colocar o nome da variável, seguido de um índice entre colchetes. Na linguagem Python, uma lista pode conter zero ou mais elementos de um mesmo tipo ou de tipos diversos, ou ainda pode conter outras listas. O tamanho de uma lista é igual à quantidade de elementos que ela contém (também chamado de comprimento da lista). As listas podem crescer ou diminuir com o tempo. 1.1 Declarar uma Lista >> Como declarar um lista vazia: p = [ ] #criando uma lista vazia chamada p >> Como declarar uma lista com 3 elementos: Z = [12,7,5] #criando uma lista chamada z de tamanho 3 Os índices começam em zero, então a lista z acima, tem índices que vão de 0 a 2, ou seja, 0, 1 e 2. A seguir, serão apresentados alguns exemplos para acessar os elementos da lista z, apresentada acima. Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 3 Apostila de Algoritmos e Programação – semestre2 1.2 Acessar uma Lista >> Acessando a lista z (do exemplo anterior): Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 4 Apostila de Algoritmos e Programação – semestre2 1.3 Modificar uma Lista >> Modificando a lista z (do exemplo anterior): 1.4 Exemplos com Listas em Python # Definir uma lista (um vetor) chamada nota de tamanho 5 notas = [7.0,8.0,9.5,10.0,6.5] # Imprimir a todas as notas da lista chamada notas print(notas) # Imprimir o primeiro elemento da lista notas print(notas[0]) # Imprimir a terceira nota do vetor notas (notas é a variável e 2 é o índice, ou seja, a posição no vetor) print(notas[2]) # Imprimir o último elemento da lista notas print(notas[-1]) # Imprimir o penúltimo elemento da lista notas print(notas[-2]) Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 5 Apostila de Algoritmos e Programação – semestre2 Na imagem abaixo estão apresentados resultados dos exemplos vistos acima: 1.5 Mais Exemplos com Listas: uso de Fatias # Imprimir do segundo item da lista notas em diante (da posição 1 em diante, incluindo a posição 1) print(notas[1:]) # Imprimir os elementos que estão antes da posição 1 (não inclui a posição 1) print(notas[:1]) # Imprimir os elementos a partir da posição 2 e antes da posição 4, ou seja, elementos de índices 2 e 3 print(notas[2:4]) #Imprimir os 5 primeiros elementos da lista notas, de 2 em 2 print(notas[0:5:2]) Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 6 Apostila de Algoritmos e Programação – semestre2 Na imagem abaixo estão apresentados resultados dos exemplos vistos acima: Os elementos de uma lista em Python podem ser acessados separadamente ou em grupos, através de indexação e corte em fatias. A indexação é feita (como em muitas outras linguagens) pela colocação do índice entre os colchetes (o primeiro elemento tem índice 0). O corte em fatias é parecido com a indexação, indicando-se os índices inicial e final separados por dois pontos (":"). Observe que o índice final não se inclui no resultado. Se um dos índices é omitido, assume-se que você deseja todos os elementos na direção correspondente. Por exemplo, lista[:3] significa "cada elemento desde o início da lista até o elemento 3, este não incluído". Já lista[3:] significaria que "cada elemento da lista, começando do elemento 3 (inclusive) até o último (inclusive)". Para outros resultados bem interessantes, você pode usar números negativos também: lista[-3] é o terceiro elemento desde o final da lista (“de trás para frente”). Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 7 Apostila de Algoritmos e Programação – semestre2 1.6 Inicializando Listas >> Como zerar uma lista numérica em Python: # Inicializar com zeros a lista chamada valores de tamanho 5 valores = [0]*5 >> Como criar uma lista de strings vazias em Python: # Inicializar com strings vazias a lista chamada palavras de tamanho 4 palavras = [""]*4 Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 8 Apostila de Algoritmos e Programação – semestre2 1.7 Funções Pré-Definidas em Python Vejamos agora algumas funções pré-definidas da Linguagem Python: len: retorna o tamanho de uma lista (número de elementos, ou comprimento da lista) ou de uma string (número de caracteres) >> Alterando listas em Python: Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 9 Apostila de Algoritmos e Programação – semestre2 append: insere um ou mais elementos no final da lista Usando o operador + na Linguagem Python funciona da mesma forma que o append: Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 1 0 Apostila de Algoritmos e Programação – semestre2 >> Inserindo vários elementos no final da lista: extend: parecida com a função append, pois também insere elementos no final da lista Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 1 1 Apostila de Algoritmos e Programação – semestre2 A função append adiciona elementos na lista e a função extend expande listas. A função append permite adicionar listas dentro de listas, enquanto extend é apenas para concatenar listas. in: permite saber se um elemento está em uma lista (ou string) ou não. Operador in retorna True ou False. None: às vezes é necessário preencher um alista ou uma posição da lista com um valor não válido, ou seja, um valor que não seja de tipo nenhum e para isso usa-se None. É melhor que usar 0 (zero), [ ] ou uma string vazia (“ “). None é útil para criar uma lista vazia, mas com um número conhecido de posições. E atenção, pois o comando None deve ser com “N” maiúsculo! Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 1 2 Apostila de Algoritmos e Programação – semestre2 min e max: min(lista) retorna o menor elemento da lista e max(lista) retorna o maior elemento da lista. 1.8 Como Preencher uma Lista usando o Laço While em Python Como exemplo, veja abaixo um programa para ler 4 nomes e armazenar em uma lista. Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 1 3 Apostila de Algoritmos e Programação – semestre2 Resultado de saída do programa acima ao ser executado: 1.9 Como Preencher uma Lista usando o Laço For em Python Como exemplo, veja abaixo um programa para ler 4 nomes e armazenar em uma lista: Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 1 4 Apostila de Algoritmos e Programação – semestre2 Resultado de saída do programa acima ao ser executado: 1.10 Apagar Elementos de uma Lista Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 1 5 Apostila de Algoritmos e Programação – semestre2 O elemento excluído não ocupa mais lugar na lista, fazendo com que os índices sejam reorganizados, ou seja, que passem a ser calculados sem esse elemento. Pode-se também apagar fatias (slices) inteiras da lista de uma só vez, como apresentado no exemplo abaixo: Tenha em mente que cada elemento de um vetor (uma lista) é uma variável semelhante às outras, podendo sofrer atribuição, ser passado como parâmetro ou participar como operando em expressões, desde que você indique qual é o elemento, através do seu índice, ou seja, sua posição no vetor. A forma de referenciar elementos de vetores é idêntica à maneira de referenciar caracteres específicos de uma string; na verdade, strings são vetores do tipo char ! Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 1 6 Apostila de Algoritmos e Programação – semestre2 1.11 Copiar Listas em Python Veremos a seguir que existem duas maneiras de copiar listas na Linguagem Python. No exemplo abaixo, as duas listas fazem referência ao mesmo endereço de memória, ou seja, quando uma das listas é alterada, a outra também sofre a mesma alteração. Na verdade, as duas são a mesma lista! Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 1 7 Apostila de Algoritmos e Programação – semestre2 Agora vejamos outra maneira de copiar listas, sendo que agora sim será realmente feita uma cópia e uma nova lista é criada. Veja no exemplo a seguir: 1.12 Comparar Listas em Python Se duas listas são iguais até o k-ésimo elemento, o resultado da comparação depende da comparação entre os (k+1)-ésimos elementos. Se alguma das listas que estão sendo comparadas tem somente k elementos, então esta é a menor. Duas listas são iguais se e somente se tiverem o mesmo comprimento e todos os elementos de mesmas posições forem iguais. Uma lista é maior que um número, mas menor que uma string. Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 1 8 Apostila de Algoritmos e Programação – semestre2 1.13 Transformar o resultado de Range em uma Lista Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 1 9 Apostila de Algoritmos e Programação – semestre2 1.14 Listas com Strings: acessando Letras Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 2 0 Apostila de Algoritmos e Programação – semestre2 Referências Para elaboração e construção desta apostila foram consultados vários tipos de materiais, como por exemplo: livros, outras apostilas, páginas web etc. Esperança, Claudio. Python: Listas. Disponível em: http://www.lcg.ufrj.br/Cursos/algprog/Programando%20em%20Python%20-%20Listas.pdf. Acesso em: Julho/2013 Python.org. Disponível em: http://docs.python.org/3/tutorial/introduction.html#lists. Acesso em: Julho/2013 Steinmacher, Igor. Vetores (Listas). Disponível em: http://www.igor.pro.br/utfpr/arquivos/ea31b/EA31B-Aula07.pdf. Acesso em: Julho/2013 Profa. Flávia Pereira de Carvalho - [email protected] - http://fit.faccat.br/~fpereira 2 1