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))
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))
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