Llistes per comprensió P66679


Statement
 

pdf   zip

Es demana els codis de diverses funcions. Seguiu el format dels exemples que es mostren a sota. Tots els codis es poden escriure sense utilitzar bucles.

  1. Escriviu una funció @my_map(f, L)@ que correspongui a una nova definició de la funció estàndard @map@ tot usant llistes per comprensió.

  2. Escriviu una funció @my_filter(f, L)@ que correspongui a una nova definició de la funció estàndard @filter@ tot usant llistes per comprensió.

  3. Escriviu una funció @factors(n)@ que, donat un enter estrictament positiu, retorni la llista amb els seus factors (no necessàriament primers).

  4. Escriviu una funció @triplets(n)@ que, donat un enter estrictament positiu nn, retorni una llista de totes les tripletes pitagòriques de nn, és a dir, tripletes (a,b,c)(a, b, c) on a2+b2=c2a^2 + b^2 = c^2 amb 1a,b,cn1\le a, b, c \le n.

Puntuació

Totes les funcions valen el mateix.

Sample session
>>> my_map(lambda x: x + 1, [1, 2, 3, 4])
[2, 3, 4, 5]
>>> my_filter(lambda x: x % 2 == 1, [1, 2, 3, 4, 5])
[1, 3, 5]
>>> factors(10)
[1, 2, 5, 10]
>>> triplets(1)
[]
>>> triplets(20)
[(3, 4, 5), (4, 3, 5), (5, 12, 13), (6, 8, 10), (8, 6, 10), (8, 15, 17), (9, 12, 15), (12, 5, 13), (12, 9, 15), (12, 16, 20), (15, 8, 17), (16, 12, 20)]
Information
Author
Gerard Escudero i Albert Rubio
Language
Catalan
Official solutions
Python
User solutions
Python