Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.

Slides:



Advertisements
Apresentações semelhantes
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Advertisements

Python: Recursão Claudio Esperança.
Python: Listas Claudio Esperança.
Python: Dicionários Claudio Esperança.
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Programação em Java Prof. Maurício Braga
Matrizes Unidimensionais
Programação de Computadores
Estruturas de Repetição
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Listas duplamente encadeadas
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO AOS APLICATIVOS JAVA Prof. Thiago Pereira Rique
INTRODUÇÃO AOS APLICATIVOS JAVA
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
David Menotti Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Classificação e Pesquisa de Dados
Programação para Engenharia I
Métodos de Classificação por Seleção: HeapSort
THOBER CORADI DETOFENO, MSC. Aula 07
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Instrutor: Nilo Menezes
Lógica de Programação Módulo II
Apresentação da linguagem Python
Apresentação da Linguagem Python
Linguagem C Strings.
Ponteiros.
Listas e algoritmos (em Scratch)
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Python Uma introdução Klaus Natorf Quelhas Novembro de 2009.
P YTHON : T IPO L ISTA George Gomes Cabral. L ISTAS São arranjos seqüenciais de informações mais simples Caracterizam-se por permitir o acesso eficiente.
Introdução à Programação de Computadores
Vetores e Matrizes Laboratório de ICCN Marco Antonio Montebello Júnior
Aula prática 6 Vetores e Matrizes
Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Conceitos básicos de orientação a objetos
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Linguagem de Programação II Parte IX
FTIN Formação Técnica em Informática
Tipos Abstratos de Dados
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Ordenação por inserção
ORDENAÇÃO POR CONTAGEM
Aula prática 6 Vetores e Matrizes
Linguagem de Programação JAVA
Estruturas de Dados Aula 9: Listas (parte 1)
Fundamentos de Programação
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Estruturas de Dados PROFESSOR DIÓGENES FURLAN. Estruturas de Dados (ED) Programas operam sobre dados Dados são relacionados e possuem estrutura Como representar.
Módulo I Capítulo 5: Vetores
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Listas Simplesmente Encadeadas
Ceça Moraes – Introdução à Programação SI1
Prof. Alessandro Gonçalves
Lista Linear Base para outras estruturas
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.
Estruturas Homogêneas – Vetores e Matrizes
Profa. Juliana Mafra ESTRUTURA DE DADOS 30 de Setembro de 2009 Faculdade de Informática e Tecnologia de Pernambuco.
Estruturas Homogêneas - Vetores
Transcrição da apresentação:

Prof. Natalia Castro Fernandes Mestrado em 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 0s: [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]] 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]

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

Comparação de listas Feita da esquerda para a direita Se elementos diferentes na mesma posição são encontrados, então é possível dizer qual a maior lista string>lista>numero

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.

Construções iterativas Construção de listas de forma concisa [expressão iteração] Exemplo: >>> [i*2+3 for i in range(10)] [3, 5, 7, 9, 11, 13, 15, 17, 19, 21]

Exercício Construa, sem a ajuda do computador, as seguintes listas: 1. [i*2+3 for i in range(10) if i%3==0] 2. [[int(i==j) for j in range(3)] for i in range(3)] v1 = [1,2,3] v2 = [3,4,5] 3. [v1[i]*v2[i] for i in range(len(v1))] 4. [a*b for a in v1 for b in v2]

Exercício 1. Suponha que você realizou um teste prático e o resultado do seu teste está disposto da seguinte forma: L1 = [Valores testados] L2 = [Resultado medido] Cada valor testado gera um resultado medido com o mesmo índice em L2. Suponha que, agora, você precisa criar uma matriz, onde cada linha tem uma lista contendo dois elementos: Valor testado, resultado. Faça um programa que construa essa matriz, supondo que o número de valores testados é n.

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.