prof. natalia castro fernandes mestrado em ...natalia/prog_avan/slide3.pdf · listas dicionários...
TRANSCRIPT
Prof. Natalia Castro Fernandes
Mestrado em Telecomunicações – UFF
2º semestre/2012
Relembrando...� Tipos primitivos
� Simples (int, long, float, complex, string)
� Compostos� Listas� 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� 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 inteirosA = [1,2,3]� 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]� 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 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+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]]
1. Retire o elemento ‘3’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 listanova 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� 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� 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� 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çõesaçõ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:� 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ú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 = a b cd e f
A = [ [a b c],[d e f],
� Mas como construir as matrizes?� Estaticamente
� M = [[1,2,3],[4,5,6],[7,8,9]]
� Matriz de tamanho m x n qualquer?
d e fg h i
[d e f],[g h i]]
Matrizes� Uma ideia seria:
� M = [[None]*n]*m
� Exercício: Tente criar uma matriz dessa forma e tente � 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:� 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:� 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]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ício1. 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]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.