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