Python: par máximo de cocientes en la lista

A veces, necesitamos encontrar el problema específico de obtener el par que produce el cociente máximo, esto se puede resolver ordenando y obteniendo el primer y el último elemento de la lista. Pero en algunos casos, no necesitamos cambiar el orden de la lista y realizar alguna operación en una lista similar sin usar espacio adicional. Analicemos ciertas formas en que esto se puede realizar.

Método n.º 1: usar la comprensión de listas + max() + combination()+ lambda
Esta tarea en particular se puede realizar usando la combinación de las funciones anteriores en las que usamos la comprensión de listas para vincular todas las funcionalidades y la función max para obtener el cociente máximo, la función de combinación encuentra todos los cocientes internamente y lambda La función se utiliza para calcular los cocientes.

# Python3 code to demonstrate
# Maximum Quotient Pair in List
# using list comprehension + max() + combinations() + lambda
from itertools import combinations
  
# initializing list
test_list = [3, 4, 1, 7, 9, 1]
  
# printing original list
print("The original list : " + str(test_list))
  
# using list comprehension + max() + combinations() + lambda
# Maximum Quotient Pair in List
res = max(combinations(test_list, 2), key = lambda sub: sub[0] // sub[1])
  
# print result
print("The maximum quotient pair is : " + str(res))
Producción :

The original list : [3, 4, 1, 7, 9, 1]
The maximum quotient pair is : (9, 1)

Método n.º 2: Uso de la comprensión de listas + nlargest() + combination()+ lambda
Este método tiene el potencial no solo de encontrar un único máximo sino también k pares de cocientes máximos si es necesario y utiliza la función nlargest en lugar de la función max para lograr esta funcionalidad.

# Python3 code to demonstrate
# Maximum Quotient Pair in List
# using list comprehension + nlargest() + combinations() + lambda
from itertools import combinations
from heapq import nlargest
  
# initializing list
test_list = [3, 4, 1, 7, 9, 1]
  
# printing original list
print("The original list : " + str(test_list))
  
# using list comprehension + max() + combinations() + lambda
# Maximum Quotient Pair in List
# computes 2 maximum pair differences
res = nlargest(2, combinations(test_list, 2), key = lambda sub: sub[0] // sub[1])
  
# print result
print("The maximum quotient pair is : " + str(res))
Producción :

The original list : [3, 4, 1, 7, 9, 1]
The maximum quotient pair is : (9, 1)

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 *