Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012 Relembrando... Tipos primitivos Simples (int, long, float, complex, string) Compostos Listas Dicionários Tuplas Conjuntos Definidos pelo usuário Classes Listas Estrutura para armazenar uma sequência de elementos Em Python: Usadas para representar sequências Usadas para criar matrizes Acesso sequêncial e direto por meio de índices Podem ser criadas com qualquer tipo de elemento Operações semelhantes às das strings Indexação Fatiamento Concatenação (+) Repetição (*) Atenção: Listas permitem que elementos indexados sejam modificados, mas strings não permitem essa operação. Listas Lista vazia A= [] Lista com inteiros A = [1,2,3] Lista com elementos genéricos (inclusive outras listas) A = [1, 'a', 2+3j, ['ab', 'CD']] Acesso aos elementos da lista 1º elemento: 0 Último elemento: -1 Lista = [1,2,3,4] Inserindo elementos em listas Não é permitido colocar um elemento em uma posição não existente A lista deve ser inicializada com as posições que serão necessárias Existem funções específicas para inserir novas posições na lista Inserindo elementos em listas Concatenação e repetição L1 = [‘a’, ‘b’] L2 = [1,2] L1+L2 = [‘a’, ‘b’, 1, 2] L2+L1 = [1, 2, ‘a’, ‘b’] L2*3 = [1, 2, 1, 2, 1, 2] Criando lista de ‘0’s: [0]*5 = [0, 0, 0, 0, 0] Operações em listas Deletar um elemento Exercício Na lista a seguir: L = [1,2,3,[‘a’, ‘b’, ‘c’],4, [5,6]] Retire o elemento ‘3’ 2. Retire o elemento ‘b’ 3. Retire a lista [5,6] 4. Troque o elemento 2 pela lista [1,2,3] 1. Fatiamento Obter ou atribuir um valor a uma parte de uma lista Fatiamento Fatiamento com espaçamento Valor do espaçamento definido após o intervalo Atribuição de valores As variáveis list criam referências Semelhante a ideia de ponteiros Atribuir uma lista a outra cria uma referência e não uma nova lista Atribuição de valores Operador is indica se duas listas são a mesma ou são diferentes espaços da memória Uso: Lista1 is Lista2 Resposta: True ou False Verificação de presença Operador in Verifica se um elemento pertence a uma lista ou a uma string Funções úteis len(lista) Retorna o número de elementos na lista min(lista) Retorna o menor valor da lista max(lista) Retorna o maior valor da lista list(string) Transforma a string em uma lista Funções úteis range(inicio, parada, incremento) Gera uma PA com inicio em inicio, limite em parada e razão incremento inicio vale, por padrão,0, e incremento, 1 Comando for Permite iterar sobre os elementos de uma lista Formato: for variavel in lista: ações Gera um laço com um número de iterações igual ao tamanho da lista Em cada iteração, o valor de variável recebe um item da lista Comando for Classe list As listas criadas anteriormente são objetos da classe list Métodos da classe list Usados como objeto.método() Exemplos: Lista.reverse() Inverte ordem de elementos Lista.append(elemento) Insere elemento no fim da lista Lista.count(elemento) Retorna quantas vezes o elemento aparece na lista Lista.extend(Lista2)Insere elementos de Lista2 no final de Lista1 Lista.index(elemento) Retorna o índice da primeira ocorrência de elemento; Erro, caso o elemento não exista Classe list Lista.insert(índice, elemento) insere o elemento na posição indicada por índice Lista.pop(índice) Remove da lista o elemento de índice e o retorna; Se índice for omitido (pop() ), então assume-se o último elemento Lista.remove(elemento) Remove primeira aparição de elemento da Lista; Erro, caso elemento não exista Lista.sort() Ordena os elementos de uma lista Matrizes A= abc def ghi A = [ [a b c], [d e f], [g h i]] Mas como construir as matrizes? Estaticamente M = [[1,2,3],[4,5,6],[7,8,9]] Matriz de tamanho m x n qualquer? Matrizes Uma ideia seria: M = [[None]*n]*m Exercício: Tente criar uma matriz dessa forma e tente atribuir valor a um elemento dessa matriz. Qual o problema? Matrizes L = [0]*3 M = L*3 ≠ M = [L]*3 Forma para criar matrizes genéricas: M = [] for i in range(m): M.append([0]*n) Exercício: Crie uma matriz 5x4 e atribua valor ao elemento a11. Exercício Faça um programa que faça a multiplicação de matrizes. As matrizes podem ter tamanhos arbitrários e serão digitadas no início do script.