25
Listas Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012

Listas

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Listas

Prof. Natalia Castro FernandesEngenharia 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árioClasses

ListasEstrutura para armazenar uma sequência de

elementosEm Python:

Usadas para representar sequênciasUsadas para criar matrizesAcesso sequêncial e direto por meio de índicesPodem ser criadas com qualquer tipo de elementoOperaçõ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.

ListasLista 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 lista1º elemento: 0Último elemento: -1

Lista = [1,2,3,4]

Inserindo elementos em listasNão é permitido colocar um elemento em

uma posição não existenteA 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çãoL1 = [‘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 listasDeletar um elemento

ExercícioNa lista a seguir:

L = [1,2,3,[‘a’, ‘b’, ‘c’],4, [5,6]]

1. 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]

FatiamentoObter ou atribuir um valor a uma parte de

uma lista

FatiamentoFatiamento com espaçamento

Valor do espaçamento definido após o intervalo

Atribuição de valoresAs variáveis list criam referências

Semelhante a ideia de ponteirosAtribuir uma lista a outra cria uma referência e

não uma nova lista

Atribuição de valoresOperador is indica se duas listas são a mesma

ou são diferentes espaços da memóriaUso:

Lista1 is Lista2Resposta:

True ou False

Verificação de presençaOperador in

Verifica se um elemento pertence a uma lista ou a uma string

Funções úteislen(lista)

Retorna o número de elementos na listamin(lista)

Retorna o menor valor da listamax(lista)

Retorna o maior valor da listalist(string)

Transforma a string em uma lista

Funções úteisrange(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 forPermite iterar sobre os elementos de uma

listaFormato:

for variavel in lista:ações

Gera um laço com um número de iterações igual ao tamanho da listaEm cada iteração, o valor de variável recebe

um item da lista

Comando for

Classe listAs listas criadas anteriormente são objetos da

classe listMé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]]

MatrizesUma 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?

MatrizesL = [0]*3M = 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ícioFaç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.