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 ‘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
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
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.
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.
2.
[i*2+3 for i in range(10) if i%3==0]
[[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.
Download

Programação Avançada