Python | Generar lista de diferencia de elementos sucesivos

Mientras trabajamos con python, generalmente nos encontramos con muchos problemas que debemos resolver en el día a día y en el desarrollo. Especialmente en desarrollo, se desea realizar pequeñas tareas de python en una sola línea. Discutimos algunas formas de calcular una lista que consta de elementos que son una diferencia sucesiva en la lista.

Método n.º 1: Uso de la comprensión de listas
El método Naive se puede utilizar para realizar, pero como este artículo analiza las soluciones de una sola línea para este problema en particular, comenzamos con la comprensión de listas como un método para realizar esta tarea.

# Python3 code to demonstrate 
# to generate successive difference list 
# using list comprehension
  
# initializing list 
test_list = [1, 4, 5, 3, 6]
  
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using list comprehension
# generate successive difference list
res = [test_list[i + 1] - test_list[i] for i in range(len(test_list)-1)]
  
# printing result
print ("The computed successive difference list is : " + str(res))

Producción :

The original list is : [1, 4, 5, 3, 6]
The computed successive difference list is : [3, 1, -2, 3]

Método n.º 2: el usozip()
zip() también se puede usar para realizar una tarea similar y usa el poder de los índices negativos para zip()el elemento de índice con su siguiente elemento y, por lo tanto, calcula la diferencia.

# Python3 code to demonstrate 
# to generate successive difference list 
# using zip()
  
# initializing list 
test_list = [1, 4, 5, 3, 6]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using zip()
# generate successive difference list
res = [j - i for i, j in zip(test_list[: -1], test_list[1 :])]
  
# printing result
print ("The computed successive difference list is : " + str(res))

Producción :

The original list is : [1, 4, 5, 3, 6]
The computed successive difference list is : [3, 1, -2, 3]

Método n.º 3: el usomap() + operator.sub
map() se puede combinar con el operador de resta para realizar esta tarea en particular. Esto mapea el elemento con su siguiente elemento y realiza la operación de resta. Se pueden pasar otros operadores para realizar las operaciones deseadas.

# Python3 code to demonstrate 
# to generate successive difference list 
# using map() + operator.sub
import operator
  
# initializing list 
test_list = [1, 4, 5, 3, 6]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using map() + operator.sub
# generate successive difference list
res = list(map(operator.sub, test_list[1:], test_list[:-1]))
  
# printing result
print ("The computed successive difference list is : " + str(res))

Producción :

The original list is : [1, 4, 5, 3, 6]
The computed successive difference list is : [3, 1, -2, 3]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *