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