Python – Diferencia de tuplas consecutivas

Dada la Lista de tuplas, encuentre la diferencia absoluta en cuanto a índice de tuplas consecutivas.

Entrada : test_list = [(5, 3), (1, 4), (9, 5), (3, 5)]
Salida : [(4, 1), (7, 1), (6, 0)]
Explicación : 5 – 1 = 4, 4 – 3 = 1. por lo tanto (4, 1) y así sucesivamente.

Entrada : test_list = [(9, 5), (3, 5)]
Salida : [(6, 0)]
Explicación : 9 – 3 = 6, 5 – 5 = 0.

Método #1: Usar la comprensión de listas

Esta es una forma en la que se puede realizar esta tarea. En esto, empleamos la estrategia de fuerza bruta en la lista utilizando la estrategia de comprensión de listas para realizar esta tarea como una sola línea.

Python3

# Python3 code to demonstrate working of 
# Consecutive Tuple difference
# Using list comprehension
  
# initializing lists
test_list = [(6, 3), (1, 4), (8, 5), (3, 5)]
  
# printing original list
print("The original list : " + str(test_list))
  
# using list comprehension to perform absolute difference
# using abs() for difference
res = [(abs(test_list[idx + 1][0] - test_list[idx][0]), abs(test_list[idx + 1][1] - test_list[idx][1])) 
      for idx in range(len(test_list) - 1)]
  
# printing result 
print("The extracted list : " + str(res))
Producción

The original list : [(6, 3), (1, 4), (8, 5), (3, 5)]
The extracted list : [(5, 1), (7, 1), (5, 0)]

Método #2: Usar tupla() + map() + sub

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la tarea de realizar la resta usando sub y map() se usa para extender la lógica a todos los elementos de la lista. No genera un resultado absoluto.

Python3

# Python3 code to demonstrate working of 
# Consecutive Tuple difference
# Using tuple() + map() + sub
from operator import sub
  
# initializing lists
test_list = [(6, 3), (1, 4), (8, 5), (3, 5)]
  
# printing original list
print("The original list : " + str(test_list))
  
# using loop to iterate elements
# using sub and map() to perform the subtraction to whole elements
res = []
for idx in range(len(test_list) - 1):
    res.append(tuple(map(sub, test_list[idx + 1][0:], test_list[idx][0:])))
      
# printing result 
print("The extracted list : " + str(res))
Producción

The original list : [(6, 3), (1, 4), (8, 5), (3, 5)]
The extracted list : [(-5, 1), (7, 1), (-5, 0)]

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 *