Programa de Python para ordenar strings por rango de substring

Dada una lista de strings, ordenar por rango de substrings.

Entrada : test_list = [“geeksforgeeks”, “mejor”, “geeks”, “preparación”, “entrevista”], i, j = 1, 3 
Salida : [‘geeksforgeeks’, ‘geeks’, ‘mejor’, ‘entrevista ‘, ‘preparación’]

Explicación : “eek” < “eek” < “est” < “nte” < “rep”.

Entrada : test_list = [“manzana”, “naranja”, “banana”], i, j = 2, 4 
Salida : [‘naranja’, ‘banana’, ‘manzana’] 
Explicación : “ang” < “nan” < «por favor». 

Método n.º 1: usar sort() + corte

En esto, realizamos la tarea de ordenar usando sort() y la tarea de extraer un rango se realiza usando el corte.

Python3

# Python3 code to demonstrate working of 
# Sort Strings By Substring Range
# Using sort() + slicing
  
# helper function
def get_substr(test_str):
      
    # getting range
    return test_str[i : j]
  
# initializing list
test_list = ["geeksforgeeks", "best", "geeks", "preparation"]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing range 
i, j = 1, 3
  
# calling func.
test_list.sort(key=get_substr)
  
# printing result 
print("Strings after sorting : " + str(test_list))
Producción

La lista original es: [‘geeksforgeeks’, ‘best’, ‘geeks’, ‘preparation’]
Strings después de ordenar: [‘geeksforgeeks’, ‘geeks’, ‘best’, ‘preparation’]

Método #2: Usar la función lambda + ordenar() + rebanar

En esto, realizamos el corte usando la función lambda en lugar de llamar a la función externa.

Python3

# Python3 code to demonstrate working of 
# Sort Strings By Substring Range
# Using lambda function + sort() + slicing
  
# initializing list
test_list = ["geeksforgeeks", "best", "geeks", "preparation"]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing range 
i, j = 1, 3
  
# lambda function providing sort fnc.
test_list.sort(key=lambda test_str : test_str[i : j])
  
# printing result 
print("Strings after sorting : " + str(test_list))
Producción

La lista original es: [‘geeksforgeeks’, ‘best’, ‘geeks’, ‘preparation’]
Strings después de ordenar: [‘geeksforgeeks’, ‘geeks’, ‘best’, ‘preparation’]

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 *