Foros Python

Versión completa: [Consulta] Restar números en una lista
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
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
Hola, ¿cómo estás?

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

Código:
def restar(numeros):
    resta = numeros[0]
    for numero in numeros[1:]:
        resta -= numero
    return resta

a = [2, 8, 9, 23]
print(restar(a))  # -38

Y usando programación funcional:

Código:
from functools import reduce
import operator

a = [2, 8, 9, 23]
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!
Hola, buenísimo ya me pongo a probarlo y a leer.
Muchísimas gracias