Python - lista: resta y suma de consecutivos.

 
Vista:
sin imagen de perfil

lista: resta y suma de consecutivos.

Publicado por sor (12 intervenciones) el 06/03/2017 01:04:07
Sumatorio de la diferencia entre números contiguos de una lista. Es decir dada una lista [1,3,6,10] obtendremos: [2,3,4] (3-1), (6-3) y (10-6). Después obtendremos 9 (2+3+4). Hay que hacerlo con "def". Mi intento:

1
2
3
4
5
6
7
8
9
10
11
12
13
a=[1,3,6,10]
 
def resta_consecutivos(a):
    b=[]
    for i in range(len(a)-1):
        b=[a[i+1]-a[i]]
    return b
    def sumatorio(b):
        suma=0
        for número in b:
            suma+=número
        return suma
    print(sumatorio(b))


¿Qué estoy haciendo mal? Gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

lista: resta y suma de consecutivos.

Publicado por kip (257 intervenciones) el 06/03/2017 13:26:22
Hola, debes recordar no usar acentos en nombres de variables (número) , en la linea donde le asignas a la variable b el valor de la resta de elementos lo haces mal, almacenandolo como un unico valor, debes ir almacenando cada resultado de la operacion agregando un nuevo elemento a la lista con .append(). Por ultimo estas haciendo un return de la variable b, debes recordar que el return cuando retorna el valor las siguientes lineas de la funcion no se ejecutan!!

Modifique tu codigo a ver si es lo que quieres...:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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)
    def sumatorio(b):
        suma=0
        for numero in b:
            suma+=numero
        return suma
    print("Sumatorio ", sumatorio(b))
 
resta_consecutivos(a)

Nos avisas si es asi como buscas la resolucion a tu problema...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

lista: resta y suma de consecutivos.

Publicado por sor (12 intervenciones) el 06/03/2017 16:07:35
¡Buenísimo! kip. Gracias por la explicación. Muy aclaratoria. Solo comentarte que las tildes sí me las acepta en el código, siempre lo ha hecho y no influyen. Creo que está relacionado con la versión de python (3.x) o bien con el utf-8.
Un saludo crack.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar