[ Foro de Python ]

programacion python

15-May-2020 17:11
Invitado (kike)
0 Respuestas

Usando como técnica principal la definición de secuencias por comprensión,
definir las siguientes funciones:

Dada una lista de números naturales, la suma de los cuadrados de los  números pares de la lista.

# Ejemplo:
# >>> suma_cuadrados([9,4,2,6,8,1])
# 120
hola gente soy nuevo y esta complicado si alguien me puede ayudar por favor
def suma_cuadrados(l):
   t=0
   for i in l:
       if i % 2 == 0:
           t += i*i        
   return t

# b) Dada una lista de números l=[a(1),...,a(n)], calcular el sumatorio de i=1
#    hasta n de i*a(i).

# Ejemplo:

# >>> suma_fórmula([2,4,6,8,10])
# 110


def suma_formula(l):
   n = len(l)
   t = 0
   l1 = [(i+1)*l[i] for i in range(n)]
   for k in l1:
       t+=k
   return t

# c) Dadas dos listas numéricas de la misma longitud representando dos puntos
#    n-dimensionales, calcular la distancia euclídea entre ellos.

# Ejemplo:

# >>> distancia([3,1,2],[1,2,1])
# 2.449489742783178

def sqrt(n):
   return n**(1/2.0)

def distancia(l1,l2):
   n  = len(l1)
   l3 = [(l1[i]-l2[i])**2 for i in range(n)]
   t = 0
   for i in range(n):
       t+=l3[i]
   return sqrt(t)

# d) Dada una lista y una función de un argumento, devolver la lista de los
#    resultados de aplicar la función a cada elelemnto de la lista.

# Ejemplo:

# >>> map_mio(abs,[-2,-3,-4,-1])
# [2, 3, 4, 1]

def map_mio(f,l):
   l1 = [ f(a) for a in l]
   return l1

e) Dada un par de listas (de la misma longitud) y una función de dos
   argumentos, devolver la lista de los resultados de aplicar la función a
   cada par de elementos que ocupan la misma posición en las listas de
  entrada.


# Ejemplo:

# >>> map2_mio((lambda x,y: x+y) ,[1,2,3,4],[5,2,7,9])
# [6, 4, 10, 13]

def map2_mio(f,l1,l2):
   l3 = [f(l1[i],l2[i]) for i in range(len(l1))]
   return l3

# f) Dada una lista de números, contar el número de elementos que sean múltiplos
#    de tres y distintos de cero.

# Ejemplo:

# >>> m3_no_nulos([4,0,6,7,0,9,18])
# 3

def m3_no_nulos(l):
   n = len(l)
   l1 = [ 1 for i in range(n) if (l[i] % 3 == 0 and l[i] != 0)]
   return sum(l1)
#   return l1.len()

# f) Dadas dos listas de la misma longitud, contar el número de posiciones en
#    las que coinciden los elementos de ambas listas.  

# Ejemplo:

# >>> cuenta_coincidentes([4,2,6,8,9,3],[3,2,1,8,9,6])
# 3


def cuenta_coincidentes(l1,l2):
   n = len(l1)
   t = sum([ 1 for i in range(n) if l1[i] == l2[i] ])
   return t

# g) Dadas dos listas de la misma longitud, devolver un diccionario que tiene
# como claves las posiciones  en las que coinciden los elementos de ambas
# listas, y como valor de esas claves, el elemento coincidente.

# Ejemplos:

# >>> dic_posiciones_coincidentes([4,2,6,8,9,3],[3,2,1,8,9,6])
# {1: 2, 3: 8, 4: 9}
# >>> dic_posiciones_coincidentes([2,8,1,2,1,3],[1,8,1,2,1,6])
# {1: 8, 2: 1, 3: 2, 4: 1}

def dic_posiciones_coincidentes(l1,l2):
   n = len(l1)
   l3 = {i:l1[i] for i in range(n) if l1[i]==l2[i]}
   return l3




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)