Python: reemplazar registros no máximos

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)) 
Producción :

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)) 
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *