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