250 likes | 403 Views
Listas. 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.
E N D
Listas 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
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’ • Retire o elemento ‘b’ • Retire a lista [5,6] • Troque o elemento 2 pela lista [1,2,3]
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
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 • Mas como construir as matrizes? • Estaticamente • M = [[1,2,3],[4,5,6],[7,8,9]] • Matriz de tamanho m x n qualquer? A = a b c d e f g h i A = [ [a b c], [d e f], [g h i]]
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.