Python: diferencia consecutiva de la columna Kth en la lista de tuplas

A veces, mientras trabajamos con la lista de Python, podemos tener una tarea en la que necesitamos trabajar con la lista de tuplas y obtener la diferencia absoluta de su índice Kth. Este problema tiene aplicación en el dominio del desarrollo web mientras se trabaja con información de datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Ejemplos:

Entrada : test_list = [(5, 4, 2), (1, 3, 4), (5, 7, 8), (7, 4, 3)], K = 0 
Salida : [4, 4, 2] 
Explicación : 5 – 1 = 4, por lo tanto, 4. 
 

Entrada : test_list = [(5, 4, 2), (1, 3, 4), (5, 7, 8), (7, 4, 3)], K = 2 
Salida : [2, 4, 5] 
Explicación : 8 – 3 = 5, por lo tanto, 5. 

Método #1: Usar bucle

En esto, para cada tupla restamos y encontramos la diferencia absoluta de las tuplas de la columna K con las tuplas consecutivas en la lista.

Python3

# Python3 code to demonstrate working of 
# Consecutive Kth column Difference in Tuple List
# Using loop
  
# initializing list
test_list = [(5, 4, 2), (1, 3, 4), (5, 7, 8), (7, 4, 3)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K 
K = 1 
  
res = []
for idx in range(0, len(test_list) - 1):
  
    # getting difference using abs()
    res.append(abs(test_list[idx][K] - test_list[idx + 1][K]))
      
# printing result 
print("Resultant tuple list : " + str(res))

Producción:

La lista original es: [(5, 4, 2), (1, 3, 4), (5, 7, 8), (7, 4, 3)]
Lista de tupla resultante: [1, 4, 3]

Método #2: Usando zip() + comprensión de lista

En esto, iteramos para todos los elementos en la lista usando la comprensión de la lista y comparamos los elementos emparejados usando zip(). 

Python3

# Python3 code to demonstrate working of 
# Consecutive Kth column Difference in Tuple List
# Using zip() + list comprehension
  
# initializing list
test_list = [(5, 4, 2), (1, 3, 4), (5, 7, 8), (7, 4, 3)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K 
K = 1 
  
# zip used to pair each tuple with subsequent tuple
res = [abs(x[K] - y[K]) for x, y in zip(test_list, test_list[1:])]
      
# printing result 
print("Resultant tuple list : " + str(res))

Producción:

La lista original es: [(5, 4, 2), (1, 3, 4), (5, 7, 8), (7, 4, 3)]
Lista de tupla resultante: [1, 4, 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 *