Programa de Python para dividir cada palabra según el porcentaje dado

Dadas las strings con palabras, la tarea es escribir un programa de Python para dividir cada palabra en dos mitades sobre la base de los porcentajes asignados de acuerdo con los valores dados.

Ejemplo:

Entrada: test_str = ‘geeksforgeeks es mejor para todos los geeks y estudiantes de cs’, per_splt = 50

Salida: geeksf orgeeks es lo mejor para todos los estudiantes de geeks y cs 

Explicación: cada palabra después de dividirse en un 50 por ciento, se emite el resultado.

Entrada: test_str = ‘geeksforgeeks es mejor para todos los geeks y estudiantes de cs’, per_splt = 70

Salida: geeksforg eeks es mejor para todos los estudiantes de geeks y dcs 

Explicación: cada palabra después de dividirse en un 70 por ciento, se genera el resultado.

Método 1: usar split() + len() + slice + join()

En esto, dividimos cada palabra y realizamos una división porcentual de cada palabra usando len() y rebanar. El resultado se une de forma intermedia mediante un bucle.

Python3

# Python3 code to demonstrate working of
# Split each word into percent segment in list
# Using split() + len() + slice + loop
 
# initializing string
test_str = 'geeksforgeeks is best for all geeks and cs students'
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing percent split
per_splt = 50
 
test_str = test_str.split()
res = ''
for ele in test_str:
    prop = int((per_splt/100) * len(ele))
    new_str1 = ele[:prop]
    new_str2 = ele[prop:]
    res += new_str1 + " " + new_str2 + " "
     
# printing result
print("Segmented words : " + str(res))

Producción:

La string original es: geeksforgeeks es mejor para todos los geeks y estudiantes de cs

Palabras segmentadas: geeksforgeeks is best for all geeks and csstudents 

Método 2: Usar join() 

Similar al método anterior, la diferencia es que se usa join() para concatenar la string resultante.

Python3

# Python3 code to demonstrate working of
# Split each word into percent segment in list
# Using join()
 
# initializing string
test_str = 'geeksforgeeks is best for all geeks and cs students'
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing percent split
per_splt = 50
 
test_str = test_str.split()
 
# one liner solution using join()
res = ' '.join([ele[:int((per_splt/100) * len(ele))]
                + " " + ele[int((per_splt/100) * len(ele)):]
                for ele in test_str])
 
# printing result
print("Segmented words : " + str(res))

Producción:

La string original es: geeksforgeeks es mejor para todos los geeks y estudiantes de cs

Palabras segmentadas: geeksforgeeks is best for all geeks and csstudents 

La complejidad temporal y espacial de todos los métodos es la misma:

Complejidad de tiempo: O(n)

Espacio Auxiliar: 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 *