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.