Python | String dividida en K-ésima ocurrencia de carácter

Muchos problemas de división se han tratado en el pasado, pero a veces, uno también puede encontrar este problema en el que necesitamos dividir la string en la K-ésima aparición de un carácter. Analicemos ciertas formas en que se puede resolver este problema.
 

Método #1: Uso de split() + join() 
El método de dividir y unir puede realizar esta tarea en particular. En esto, dividimos la string en función del carácter y, de acuerdo con K, realizamos una reincorporación utilizando el método de combinación anidada. 
 

Python3

# Python3 code to demonstrate working of
# Split string on Kth Occurrence of Character
# Using split() + join()
 
# initializing string
test_str = "Geeks_for_Geeks_is_best"
 
# split char
splt_char = "_"
 
# initializing K
K = 3
 
# printing original string
print("The original string is : " + str(test_str))
 
# Using split() + join()
# Split string on Kth Occurrence of Character
temp = test_str.split(splt_char)
res = splt_char.join(temp[:K]), splt_char.join(temp[K:])
 
# printing result
print("Is list after Kth split is : " + str(list(res)))
Producción

The original string is : Geeks_for_Geeks_is_best
Is list after Kth split is : ['Geeks_for_Geeks', 'is_best']

 
Método #2: Uso de expresiones regulares 
Este problema también se puede resolver utilizando la expresión regular para realizar esta tarea en particular. Junto con el corte, el método finditer de la biblioteca de expresiones regulares puede ayudar a lograr esta tarea en particular.
 

Python3

# Python3 code to demonstrate working of
# Split string on Kth Occurrence of Character
# Using regex
import re
 
# initializing string
test_str = "Geeks_for_Geeks_is_best"
 
# split char
splt_char = "_"
 
# initializing K
K = 3
 
# printing original string
print("The original string is : " + str(test_str))
 
# Using regex
# Split string on Kth Occurrence of Character
temp = [x.start() for x in re.finditer(splt_char, test_str)]
res1 = test_str[0:temp[K - 1]]
res2 = test_str[temp[K - 1] + 1:]
res = (res1 + " " + res2).split(" ")
 
# printing result
print("Is list after Kth split is : " + str(res))
Producción

The original string is : Geeks_for_Geeks_is_best
Is list after Kth split is : ['Geeks_for_Geeks', 'is_best']

Método #3: Usando maxsplit de split  

Puede usar la división en sí misma para obtener el número k-ésimo, el segundo parámetro de la división del método, esa es la división máxima, luego tiene su string.  

Probablemente la forma más fácil

Python3

test_str = "Geeks for geeks"
 
K = 1 #kth occurrence
 
new_str, rest = test_str.split(" ", K)
                                
#or if you want a list
                                
new_str_list = test_str.split(" ", K)
 
print(new_str)
print(rest)
 
print(f'list: {new_str_list}')
Producción

Geeks
for geeks
list: ['Geeks', 'for geeks']

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 *