Python | Ordenar la lista de tuplas en función de la diferencia de elementos

A veces, mientras trabajamos con datos, podemos tener problemas para clasificarlos. Hay muchos tipos de bases sobre las que se puede realizar la clasificación. Pero este artículo analiza la clasificación en función de la diferencia de ambos elementos del par. Vamos a discutir ciertas formas en que esto se puede hacer.

Método #1: Usar sorted()+ lambda
La combinación de las funcionalidades anteriores se puede usar para resolver este problema. En esto, la clasificación se realiza mediante sorted()y la función lambda se alimenta como clave para realizar la clasificación deseada.

# Python3 code to demonstrate working of
# Sort tuple list on basis of difference of elements
# using sorted() + lambda
  
# initialize list 
test_list = [(1, 4), (6, 5), (8, 10)]
  
# printing original list 
print("The original list : " + str(test_list))
  
# Sort tuple list on basis of difference of elements
# using sorted() + lambda
res = sorted(test_list, key = lambda sub: abs(sub[1] - sub[0]))
  
# printing result
print("List after sorting by difference : " + str(res))
Producción :

The original list : [(1, 4), (6, 5), (8, 10)]
List after sorting by difference : [(6, 5), (8, 10), (1, 4)]

Método n.º 2: usarsort() + comparator + cmp()
Esto es otra forma más de realizar esta tarea. En esto, pasamos sort(), una función de comparación que realiza la lógica de diferencia similar usando cmp(). Funciona solo en Python2.

# Python code to demonstrate working of
# Sort tuple list on basis of difference of elements
# using sort() + comparator + cmp()
  
# comparator function
def diff_sort(ele1, ele2):
     return cmp(ele2[0] - ele2[1], ele1[0] - ele1[1])
  
# initialize list 
test_list = [(1, 4), (6, 5), (8, 10)]
  
# printing original list 
print("The original list : " + str(test_list))
  
# Sort tuple list on basis of difference of elements
# using sort() + comparator + cmp()
test_list.sort(diff_sort)
  
# printing result
print("List after sorting by difference : " + str(test_list))
Producción :

The original list : [(1, 4), (6, 5), (8, 10)]
List after sorting by difference : [(6, 5), (8, 10), (1, 4)]

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 *