Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[Consulta] Restar números en una lista
#1
Buenas,  vengo con otro planteo tonto pero el cuál no puedo resolver, ya sea porque la lista no sea la opción correcta o mi escaso conocimiento, o todo junto.

Tengo por ejemplo esta lista:
a = [2, 8, 9, 23]
La cual quiero restar todos sus elementos es decir, hacer lo siguiente: 2 - 8 - 9 - 23 = -38
Encontré un código pero lo que hace es restar de la siguiente forma:
Código:
a=[1,3,6,10]



def resta_consecutivos(a):

    b=[]

    for i in range(len(a)-1):

        b.append(a[i+1]-a[i])

    print ("Diferencia ", b)
Y esto no es lo que necesito porque la forma en que hace la resta no da el resultado que necesito.
Estuve probando otras formas pero no llegan al resultado.
La idea es ingresar datos hasta que el usuario decida terminar y éstos se almacenen en una lista, para luego restarlos a todos juntos y tener un solo valor. Cómo lo soluciono? El uso de la lista es lo que necesito o de qué forma lo puedo hacer? Muchas gracias
Responder
#2
Hola, ¿cómo estás?

Haciéndolo a mano con un bucle, podría ser algo así:

  1. def restar(numeros):
  2. resta = numeros[0]
  3. for numero in numeros[1:]:
  4. resta -= numero
  5. return resta
  6.  
  7. a = [2, 8, 9, 23]
  8. print(restar(a)) # -38


Y usando programación funcional:

  1. from functools import reduce
  2. import operator
  3.  
  4. a = [2, 8, 9, 23]
  5. print(reduce(operator.sub, a)) # -38


Sobre la función reduce() te dejo acá la explicación: https://micro.recursospython.com/recurso...educe.html

Saludos!
Responder
#3
Hola, buenísimo ya me pongo a probarlo y a leer.
Muchísimas gracias
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)