Python – Ordenar strings por diferencia de mayúsculas y minúsculas

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *