Programa de Python para ordenar strings por conteo de puntuación

Dada la lista de Strings, ordenar por conteo de puntuaciones.

Entrada : test_list = [“gfg@%^”, “is”, “Best!”] 
Salida : [‘is’, ‘Best!’, ‘gfg@%^’] 
Explicación : 0 < 1 < 3, ordenado por conteo de puntuación.

Entrada : test_list = [“gfg@%^”, “Best!”] 
Salida : [ ‘Best!’, ‘gfg@%^’] 
Explicación : 1 < 3, ordenados por puntuación. 

Método n. ° 1: usar string.punctuation + sort()

En esto, la clasificación se realiza mediante sort() y las puntuaciones se extraen del grupo de puntuación de la biblioteca de strings. Realiza ordenación in situ.

Python3

# Python3 code to demonstrate working of
# Sort Strings by Punctuation count
# Using string.punctuation + sort()
from string import punctuation
 
def get_pnc_count(string):
     
    # getting punctuation count
    return len([ele for ele in string if ele in punctuation])
 
# initializing list
test_list = ["gfg@%^", "is", "Best!", "fo@#r", "@#$ge24eks!"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# performing inplace sort
test_list.sort(key = get_pnc_count)
 
# printing result
print("Sorted Strings list : " + str(test_list))

Producción:

La lista original es: [‘gfg@%^’, ‘is’, ‘Best!’, ‘fo@#r’, ‘@#$ge24eks!’] 
Lista de strings ordenadas: [‘is’, ‘Best!’ , ‘fo@#r’, ‘gfg@%^’, ‘@#$ge24eks!’] 
 

Método #2: Usar sorted() + puntuación + lambda

En esto, realizamos la clasificación usando sorted() usando lambda para evitar una función externa para realizar la tarea de filtrar las puntuaciones extraídas usando la puntuación.

Python3

# Python3 code to demonstrate working of
# Sort Strings by Punctuation count
# Using sorted() + punctuation + lambda
from string import punctuation
 
# initializing list
test_list = ["gfg@%^", "is", "Best!", "fo@#r", "@#$ge24eks!"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# performing sort using sorted() with lambda
# function for filtering
res = sorted(test_list, key=lambda string: len(
    [ele for ele in string if ele in punctuation]))
 
# printing result
print("Sorted Strings list : " + str(res))

Producción:

La lista original es: [‘gfg@%^’, ‘is’, ‘Best!’, ‘fo@#r’, ‘@#$ge24eks!’] 
Lista de strings ordenadas: [‘is’, ‘Best!’ , ‘fo@#r’, ‘gfg@%^’, ‘@#$ge24eks!’] 
 

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 *