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))
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))
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