Dada la lista de tuplas duales, la tarea aquí es escribir un programa en Python que pueda ordenarlas por la frecuencia de la diferencia absoluta de sus elementos.
Entrada : [(1, 6), (11, 3), (9, 1), (6, 11), (2, 10), (5, 7)]
Salida: [(5, 7), (1, 6), (6, 11), (11, 3), (9, 1), (2, 10)]
Explicación: 7 – 5 = 2 ocurre solo 1 vez. 5 ocurre dos veces [( 6 – 1), (11 – 6)] y 8 ocurre 3 veces como diferencia.
Entrada: [(1, 6), (6, 11), (5, 7)]
Salida: [(5, 7), (1, 6), (6, 11)]
Explicación: 7 – 5 = 2 ocurre solo 1 vez. 5 ocurre dos veces [( 6 – 1), (11 – 6)].
Método: Usando sorted() , abs() , count() y comprensión de listas
En esto, realizamos la tarea de calcular cada diferencia absoluta usando abs() y comprensión de listas. Luego, sorted() y count() se usan para ordenar tuplas en función de los resultados calculados de diferencia absoluta.
Ejemplo:
Python3
# initializing list test_list = [(1, 6), (11, 3), (9, 1), (6, 11), (2, 10), (5, 7)] # printing original list print("The original list is : " + str(test_list)) # getting differences pairs diff_list = [abs(x - y) for x, y in test_list] # sorting list by computed differences res = sorted(test_list, key = lambda sub: diff_list.count(abs(sub[0] - sub[1]))) # printing result print("Sorted Tuples : " + str(res))
Producción:
La lista original es: [(1, 6), (11, 3), (9, 1), (6, 11), (2, 10), (5, 7)]
Tuplas ordenadas: [(5, 7), (1, 6), (6, 11), (11, 3), (9, 1), (2, 10)]
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