Buscar

Funções em Python para manipulação de listas

Prévia do material em texto

Curso: Engenharia de Computação
Disciplina: Programação I
Professor: Rodolfo da Silva Villaça
Nona Aula de Laboratório
Requisito: use definições por compreensão de listas!
1. Defina uma função que, dado um número inteiro n, retorne a soma dos 
quadrados dos inteiros 1 a n. 
2. Construa uma função de ordem mais alta chamada mapfiltrar, que recebe como 
parâmetros:
− Uma propriedade p (função unária que retorna Bool);
− Uma função unária f qualquer;
− Uma lista x;
A função mapfiltrar deve aplicar a propriedade p sobre os elementos da lista x. 
Aqueles que satisfizerem a propriedade devem ser transformados usando a função 
f. A resposta será uma lista com esses elementos. Use map e filter na sua definição. 
Exemplo:
>mapfiltrar even vezes_3 [1..5]
[6,12]
3. Faça uma função que recebe uma string (lista de caracteres) como parâmetro e 
retorne uma lista de palavras da string original. Considere que apenas o caractere 
espaço é o separador. Trate sinais pontuação e caracteres especiais como se 
fossem letras.
Exemplo:
>quebraFrase "Oi galera da computação."
["Oi","galera", "da", "computação."]
4. Considere uma lista de divisores, ex. [5,7]. Este é o parâmetro a ser aplicado a 
uma outra lista, tal como [10..100]. O resultado é uma sublista com todos os 
divisores de 5 e 7 presentes na segunda lista.
Exemplo:
>filtro [5,7] [5,6,10,12,14,20,28,35]
[35]
5. Forneça as respostas das avaliações das expressões abaixo.
a) [(snd p,fst p) | p <- [(0,1), (2,4), (2,5), (3,6), (7,14), (4,10)], 
 ((snd p) == (fst p))]
b) [(x/=y) | (x,y) <- [(0,1), (4,4), (6,6), (3,6), (7,7), (4,10)]]
c) tail [(x,y) | (x,y) <- [(0,1), (2,3), (3,6), (3,8), (7,7), (4,11)], 
 odd x, even y]
d) [(x+1,x) | x <- [1..10]]
6. Escreva a função zipar, que agrupa 2 listas intercalando os seus elementos em 
pares. A lista resultante é formada pelo par (a,x), da cabeça corrente das duas listas 
a:b e x:y.
Exemplo: 
>zipar [1,2,3,4] ['a','b']
[(1,'a'),(2,'b')]

Continue navegando