A veces, mientras trabajamos con registros de Python, podemos tener un problema en el que necesitamos reemplazar todos los registros cuyo único elemento no es Máximo. Este tipo de problema puede tener aplicación en muchos dominios, incluida la programación diaria y el desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada :
test_list = [(1, 4), (9, 11)]
K = «No máx.»
Salida : [‘No máx.’, (9, 11)]Entrada :
test_list = [(9, 11), (9, 11), (9, 11)]
K = “Non-Max”
Salida : [(9, 11), (9, 11), (9, 11) ]
Método n.º 1: uso de loop ++ map() + filter()
lambda
La combinación de las funcionalidades anteriores se puede usar para realizar esta tarea. En esto, realizamos la tarea de filtrar usando map() y la función de filtro, luego de esa asignación de valores a elementos no máximos usando un enfoque de fuerza bruta usando bucle.
# Python3 code to demonstrate working of # Replace Non-Maximum Records # Using loop + map() + filter() + lambda # initializing list test_list = [(1, 4), (9, 11), (4, 6), (6, 8), (9, 11)] # printing original list print("The original list is : " + str(test_list)) # initializing K K = None # Replace Non-Maximum Records # Using loop + map() + filter() + lambda res = [] temp = list(filter(lambda ele: ele == max(test_list), test_list)) for ele in test_list: if ele not in temp: res.append(K) else : res.append(ele) # printing result print("The list after replacing Non-Maximum : " + str(res))
The original list is : [(1, 4), (9, 11), (4, 6), (6, 8), (9, 11)] The list after replacing Non-Maximum : [None, (9, 11), None, None, (9, 11)]
Método n.º 2: usar la comprensión de listas +map() + filter() + lambda
La combinación de las funciones anteriores se puede usar para realizar esta tarea. En esto, realizamos la tarea usando un método similar al anterior, solo que la diferencia es usar la comprensión de listas para asignar K.
# Python3 code to demonstrate working of # Replace Non-Maximum Records # Using list comprehension + map() + filter() + lambda # initializing list test_list = [(1, 4), (9, 11), (4, 6), (6, 8), (9, 11)] # printing original list print("The original list is : " + str(test_list)) # initializing K K = None # Replace Non-Maximum Records # Using list comprehension + map() + filter() + lambda temp = list(filter(lambda ele: ele == max(test_list), test_list)) res = [ele if ele in temp else K for ele in test_list] # printing result print("The list after replacing Non-Maximum : " + str(res))
The original list is : [(1, 4), (9, 11), (4, 6), (6, 8), (9, 11)] The list after replacing Non-Maximum : [None, (9, 11), None, None, (9, 11)]
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