Python | ordenar la lista de tuplas según la suma

Dada una lista de tuplas, la tarea es ordenar la lista de tuplas según la suma de elementos en la tupla.

Ejemplos:

Entrada: [(4, 5), (2, 3), (6, 7), (2, 8)]
Salida: [(2, 3), (4, 5), (2, 8), (6 , 7)]

Entrada: [(3, 4), (7, 8), (6, 5)]
Salida: [(3, 4), (6, 5), (7, 8)]

# Método 1: Usando la clasificación por burbujas
Usando la técnica de Clasificación por burbujas podemos realizar la clasificación. Tenga en cuenta que cada tupla es un elemento en la lista dada. Acceda a los elementos de cada tupla utilizando los bucles anidados. Esto realiza el método de clasificación en el lugar. La complejidad del tiempo es similar a Bubble Sort, es decirO(n^2).

# Python code to sort list of tuple based on sum of element in tuple.
  
# Input list initialisation
Input = [(4, 5), (2, 3), (6, 7), (2, 8)] 
  
print("The original list of tuple is ")
print(Input)
  
# getting length of list of tuples
lst = len(Input)
  
# Bubble sort
for i in range(lst):
      
    for j in range(lst-i-1):
        if (Input[j][0]+Input[j][1]) > (Input[j+1][0]+Input[j+1][1]):
            Input[j], Input[j+1] = Input[j+1], Input[j]
  
  
# print output
print("\nThe answer is")
print(Input)

Producción:

The original list of tuple is 
[(4, 5), (2, 3), (6, 7), (2, 8)]

The answer is
[(2, 3), (4, 5), (2, 8), (6, 7)]

# Método 2: Usar el método sorted()

Este es el método más básico, eficiente y corto para lograr la solución a esta tarea.
En esto, pasamos lambda como clave para la lista de tuplas.

# Python code to sort list of tuple based on sum of element in tuple.
  
# Input list initialisation
Input = [(4, 5), (2, 3), (6, 7), (2, 8)] 
  
print("The original list of tuple is ")
print(Input)
  
# Passing lambda as key to sort list of tuple
print("\nThe answer is")
print(sorted(Input, key = lambda x:x[0] + x[1]))

Producción:

The original list of tuple is 
[(4, 5), (2, 3), (6, 7), (2, 8)]

The answer is
[(2, 3), (4, 5), (2, 8), (6, 7)]

# Método 3: Uso del método sort()
Mientras se ordena a través de este método, se cambia el contenido real de la tupla y, al igual que con la ordenación de burbuja, se realiza el método de ordenación en el lugar.

# Python code to sort list of tuple based on sum of element in tuple.
  
# Input list initialisation
Input = [(4, 5), (2, 3), (6, 7), (2, 8)] 
  
print("The original list of tuple is ")
print(Input)
  
# Passing lambda as key to sort list of tuple
Input.sort(key = lambda x: x[0] + x[1])
  
# Printing output
print("\nThe answer is")
print(Input)

Producción:

The original list of tuple is 
[(4, 5), (2, 3), (6, 7), (2, 8)]

The answer is
[(2, 3), (4, 5), (2, 8), (6, 7)]

Publicación traducida automáticamente

Artículo escrito por everythingispossible 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 *