Programa Python para ordenar tuplas por frecuencia de su diferencia absoluta

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

Deja una respuesta

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