Dada una string, la tarea es escribir un programa de Python para realizar la ordenación por el carácter máximo que aparece.
Entrada : test_list = [“geekforgeeks”, “mejor”, “para”, “geeks”]
Salida : [‘para’, ‘geeks’, ‘mejor’, ‘geekforgeeks’]
Explicación : 1 < 2 < 3 < 4, es el orden de la frecuencia máxima de aparición de caracteres.Entrada : test_list = [“geekforgeeks”, “for”, “geeks”]
Salida : [‘for’, ‘geeks’, ‘geekforgeeks’]
Explicación : 1 < 2 < 4, ordena la frecuencia máxima de aparición de caracteres.
Método #1: Usar sort() + Counter() + max()
En esto, realizamos una clasificación en el lugar usando sort(), y Counter() se usa para calcular la frecuencia de los caracteres, max() se usa para obtener el máximo de frecuencias calculadas.
Python3
# Python3 code to demonstrate working of # Sort Strings by maximum frequency character # Using sort() + Counter() + max() from collections import Counter # getting maximum character frequency def max_freq(arg_str): res = Counter(arg_str) return arg_str.count(max(res, key = res.get)) # initializing list test_list = ["geekforgeeks", "bettered", "for", "geeks"] # printing original list print("The original list is : " + str(test_list)) # performing sort test_list.sort(key = max_freq) # printing result print("Sorted List : " + str(test_list))
Producción:
The original list is : ['geekforgeeks', 'bettered', 'for', 'geeks'] Sorted List : ['for', 'geeks', 'bettered', 'geekforgeeks']
Método #2: Usar sorted() + lambda + Counter()
En esto, realizamos la tarea de realizar la ordenación usando sorted() y la función lambda para obtener una expresión lógica de declaración única, evitando la llamada a una función externa.
Python3
# Python3 code to demonstrate working of # Sort Strings by maximum frequency character # Using sorted() + lambda + Counter() from collections import Counter # getting maximum character frequency def max_freq(arg_str): res = Counter(arg_str) return arg_str.count(max(arg_str, key = arg_str.get)) # initializing list test_list = ["geekforgeeks", "bettered", "for", "geeks"] # printing original list print("The original list is : " + str(test_list)) # performing sort # lambda function to drive logic res = sorted(test_list, key = lambda arg_str : arg_str.count( max(Counter(arg_str), key = Counter(arg_str).get))) # printing result print("Sorted List : " + str(res))
Producción:
The original list is : ['geekforgeeks', 'bettered', 'for', 'geeks'] Sorted List : ['for', 'geeks', 'bettered', 'geekforgeeks']
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