Python – Strings divididas en caso de prefijo

Dada una lista de Strings, realice una división de strings cuando ocurra un prefijo.

Entrada : test_list = [“geeksforgeeks”, “best”, “geeks”, “and”], pref = “geek” 
Salida : [[‘geeksforgeeks’, ‘best’], [‘geeks’, ‘and’]] 
Explicación : cuando se produce la string «geeks», se realiza una división.

Entrada : test_list = [“buena”, “frutas”, “bondad”, “propagación”], pref = “buena” 
Salida : [[‘buena’, ‘frutas’], [‘bondad’, ‘propagación’]] 
Explicación : cuando se produce una string, se realiza una división «buena». 
 

Método n.º 1: usar bucle + comienza con()

En esto, iteramos cada elemento de la Lista y verificamos si la nueva lista debe cambiarse usando beginwith() al verificar el prefijo, y creamos una nueva lista si se encuentra el prefijo.

Python3

# Python3 code to demonstrate working of
# Split Strings on Prefix Occurrence
# Using loop + startswith()
 
# initializing list
test_list = ["geeksforgeeks", "best", "geeks", "and", "geeks", "love", "CS"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing prefix
pref = "geek"
 
 
res = []
for val in test_list:
     
    # checking for prefix
    if val.startswith(pref):
         
        # if pref found, start new list
        res.append([val])
    else:
         
        # else append in current list
        res[-1].append(val)
 
# printing result
print("Prefix Split List : " + str(res))
Producción

The original list is : ['geeksforgeeks', 'best', 'geeks', 'and', 'geeks', 'love', 'CS']
Prefix Split List : [['geeksforgeeks', 'best'], ['geeks', 'and'], ['geeks', 'love', 'CS']]

Método #2: Usando loop + zip_longest() + empieza con()

En esto, comprimimos todos los elementos con su sublista de elementos subsiguientes y verificamos el prefijo usando beginwith(), si lo encuentra, se agrega el resultado. 

Python3

# Python3 code to demonstrate working of
# Split Strings on Prefix Occurrence
# Using loop + zip_longest() + startswith()
from itertools import zip_longest
 
# initializing list
test_list = ["geeksforgeeks", "best", "geeks", "and", "geeks", "love", "CS"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing prefix
pref = "geek"
 
 
res, temp = [], []
 
for x, y in zip_longest(test_list, test_list[1:]):
    temp.append(x)
     
    # if prefix is found, split and start new list
    if y and y.startswith(pref):
        res.append(temp)
        temp = []
res.append(temp)
 
# printing result
print("Prefix Split List : " + str(res))
Producción

The original list is : ['geeksforgeeks', 'best', 'geeks', 'and', 'geeks', 'love', 'CS']
Prefix Split List : [['geeksforgeeks', 'best'], ['geeks', 'and'], ['geeks', 'love', 'CS']]

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 *