Dada la Lista de strings, la tarea es escribir un programa de Python para realizar la ordenación en función de la diferencia de casos, es decir, el recuento de minúsculas y mayúsculas.
Ejemplos:
Entrada : test_list = [“GFG”, “GeeKs”, “mejor”, “PARA”, “todos”, “GEEKS”]
Salida : [‘GeeKs’, ‘PARA’, ‘todos’, ‘GFG’, ‘mejor ‘, ‘GEEKS’]
Explicación : ees(3) – GK(2) = 1, por lo tanto, en el primer índice, los demás se ordenan en consecuencia.
Entrada : test_list = [“GFG”, “GeeKs”, “best”]
Salida : [‘GeeKs’, ‘GFG’, ‘best’]
Explicación : ees(3) – GK(2) = 1, por lo tanto en el 1er índice , los demás se ordenan en consecuencia.
Método #1: Usar sort() + islower() + isupper() + abs()
En esta clasificación en el lugar se realiza usando sort(), y se usa islower() e isupper() para verificar los casos y contar. Luego se usa abs() para obtener la diferencia absoluta para proporcionar parámetros para realizar la ordenación.
Python3
# Python3 code to demonstrate working of # Sort Strings by Case difference # Using sort() + islower() + isupper() + abs() def get_case_diff(string): # getting case count and difference lower_cnt = len([ele for ele in string if ele.islower()]) upper_cnt = len([ele for ele in string if ele.isupper()]) return abs(lower_cnt - upper_cnt) # initializing Matrix test_list = ["GFG", "GeeKs", "best", "FOr", "alL", "GEEKS"] # printing original list print("The original list is : " + str(test_list)) # inplace sort using sort() test_list.sort(key=get_case_diff) # printing result print("Sorted Strings by case difference : " + str(test_list))
Producción:
La lista original es: [‘GFG’, ‘GeeKs’, ‘best’, ‘FOR’, ‘all’, ‘GEEKS’] Strings ordenadas por diferencia de mayúsculas y minúsculas: [‘GeeKs’, ‘FOR’, ‘all’, ‘ GFG’, ‘mejor’, ‘GEEKS’]
Método #2: Usando sorted() + lambda + islower() + len() + isupper() + abs()
Similar al método anterior, la diferencia es la forma de clasificación utilizada, ordenada() y lambda utilizada como una forma de inyectar funcionalidad.
Python3
# Python3 code to demonstrate working of # Python3 code to demonstrate working of # Sort Strings by Case difference # Using sorted() + lambda + islower() + len() + isupper() + abs() # initializing Matrix test_list = ["GFG", "GeeKs", "best", "FOr", "alL", "GEEKS"] # printing original list print("The original list is : " + str(test_list)) # sorting using sorted() # lambda function to inject functionality res = sorted(test_list, key = lambda string : \ abs(len([ele for ele in string if ele.islower()]) - \ len([ele for ele in string if ele.isupper()]))) # printing result print("Sorted Strings by case difference : " + str(res))
Producción:
La lista original es: [‘GFG’, ‘GeeKs’, ‘best’, ‘FOR’, ‘all’, ‘GEEKS’] Strings ordenadas por diferencia de mayúsculas y minúsculas: [‘GeeKs’, ‘FOR’, ‘all’, ‘ GFG’, ‘mejor’, ‘GEEKS’]
La complejidad de tiempo y espacio para todos los métodos es la misma:
Complejidad de tiempo: O(n)
Complejidad espacial: O(n)
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