Python: prueba si es mayor que el elemento anterior en la lista de tuplas

Dada la lista de tuplas, verifique si el elemento anterior es más pequeño que el elemento actual para cada elemento en la lista de tuplas.

Entrada : lista_prueba = [(5, 1), (4, 9), (3, 5)]
Salida : [[Falso, Falso], [Falso, Verdadero], [Falso, Verdadero]]
Explicación : El primer elemento siempre es Falso, se comprueba el siguiente elemento para obtener un valor mayor.

Entrada : test_list = [(1, 8), (2, 2), (3, 6), (4, 2)]
Salida : [[Falso, Verdadero], [Falso, Falso], [Falso, Verdadero], [Falso, Falso]]
Explicación : 8 y 6 son casos mayores en los casos anteriores, por lo tanto, Verdadero.

Método n.º 1: usar la comprensión de listas +enumerate()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de verificar un mayor valor usando la comprensión de la lista de un trazador de líneas y enumerate() se usa para trabajar con índices durante la iteración anidada.

# Python3 code to demonstrate working of 
# Test if greater than preceding element in Tuple List
# Using list comprehension + enumerate()
  
# initializing list
test_list = [(3, 5, 1), (7, 4, 9), (1, 3, 5)]
  
# printing original list 
print("The original list : " + str(test_list))
  
# Test if greater than preceding element in Tuple List
# Indices checked using enumerate() and True and false 
# values assigned in list comprehension
res = [[True if idx > 0 and j > i[idx - 1] else False 
        for idx, j in enumerate(i)] for i in test_list]
  
# printing result 
print("Filtered values : " + str(res))
Producción :

The original list : [(3, 5, 1), (7, 4, 9), (1, 3, 5)]
Filtered values : [[False, True, False], [False, False, True], [False, True, True]]

Método n.º 2: Uso de tee() + zip()la comprensión de listas +
Esta es una de las formas en que se puede realizar esta tarea. En esto, extraemos elementos y los representamos en tuplas de tamaño = 2, usando tee(). La comprensión de listas y zip() se utilizan para construir el resultado deseado.

# Python3 code to demonstrate working of 
# Test if greater than preceding element in Tuple List
# Using tee() + zip() + list comprehension
from itertools import tee
  
# helper function
def pair(test_list):
      
    # pairing elements in 2 sized tuple
    x, y = tee(test_list)
    next(y, None)
    return zip(x, y)
  
# initializing list
test_list = [(3, 5, 1), (7, 4, 9), (1, 3, 5)]
  
# printing original list 
print("The original list : " + str(test_list))
  
# Test if greater than preceding element in Tuple List
# Using tee() + zip() + list comprehension
res = []
for sub in test_list:
      
    # appending result by checking with Dual Pairs
    res.append(tuple((False, )) + tuple([x < y for x, y in pair(sub)]))
      
# printing result 
print("Filtered values : " + str(res))
Producción :

The original list : [(3, 5, 1), (7, 4, 9), (1, 3, 5)]
Filtered values : [[False, True, False], [False, False, True], [False, True, True]]

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 *