Python: divide una string por longitudes personalizadas

Dada una string, realice la división de strings en función de las longitudes personalizadas.

Entrada : test_str = ‘geeksforgeeks’, cus_lens = [4, 3, 2, 3, 1] 
Salida : [‘geek’, ‘sfo’, ‘rg’, ‘eek’, ‘s’] 
Explicación : Strings separadas por costumbre longitudes
Entrada : test_str = ‘geeksforgeeks’, cus_lens = [10, 3] 
Salida : [‘geeksforge’, ‘eks’] 
Explicación : strings separadas por longitudes personalizadas. 
 

Método #1: Usar corte + bucle

En esto, realizamos la tarea de cortar para atender longitudes personalizadas y el bucle se usa para iterar todas las longitudes.

Python3

# Python3 code to demonstrate working of 
# Multilength String Split
# Using loop + slicing
  
# initializing string
test_str = 'geeksforgeeks'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing length list
cus_lens = [5, 3, 2, 3]
  
res = []
strt = 0
for size in cus_lens:
      
    # slicing for particular length
    res.append(test_str[strt : strt + size])
    strt += size
      
# printing result 
print("Strings after splitting : " + str(res)) 
Producción

The original string is : geeksforgeeks
Strings after splitting : ['geeks', 'for', 'ge', 'eks']

Método #2: Usar join() + comprensión de lista + next()

Esta es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la tarea de obtener caracteres hasta la longitud usando next(), el método iterador, proporciona una solución más eficiente. Por último, se usa join() para convertir cada lista de caracteres en una string.

Python3

# Python3 code to demonstrate working of 
# Multilength String Split
# Using join() + list comprehension + next()
  
# initializing string
test_str = 'geeksforgeeks'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing length list
cus_lens = [5, 3, 2, 3]
  
# join() performs characters to string conversion
# list comprehension provides shorthand to solve problem
stritr = iter(test_str)
res = ["".join(next(stritr) for idx in range(size)) for size in cus_lens]
      
# printing result 
print("Strings after splitting : " + str(res)) 
Producción

The original string is : geeksforgeeks
Strings after splitting : ['geeks', 'for', 'ge', 'eks']

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 *