A veces, mientras trabajamos con listas de strings, podemos tener un problema en el que necesitamos realizar la tarea de dividir y devolver todas las instancias divididas de la lista de forma acumulativa. Este tipo de problema puede ocurrir en muchos dominios en los que están involucrados los datos. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Usar bucle
Esta es la forma de fuerza bruta en la que se realiza esta tarea. En esto, probamos la lista y agregamos la lista cada vez que encontramos el carácter dividido.
Python3
# Python3 code to demonstrate working of # Cumulative List Split # Using loop # initializing list test_list = ['gfg-is-all-best'] # printing original list print("The original list is : " + str(test_list)) # initializing Split char spl_char = "-" # Cumulative List Split # Using loop res = [] for sub in test_list: for idx in range(len(sub)): if sub[idx] == spl_char: res.append([ sub[:idx] ]) res.append([ sub ]) # printing result print("The Cumulative List Splits : " + str(res))
The original list is : ['gfg-is-all-best'] The Cumulative List Splits : [['gfg'], ['gfg-is'], ['gfg-is-all'], ['gfg-is-all-best']]
Método n.° 2: Uso de acumular() + unir()
Este es un enfoque de una línea para este problema. En esto, realizamos la tarea de cortar en acumulativo usando acumular y se usa join() para construir la Lista de listas resultante.
Python3
# Python3 code to demonstrate working of # Cumulative List Split # Using accumulate() + join() from itertools import accumulate # initializing list test_list = ['gfg-is-all-best'] # printing original list print("The original list is : " + str(test_list)) # initializing Split char spl_char = "-" # Cumulative List Split # Using accumulate() + join() temp = test_list[0].split(spl_char) res = list(accumulate(temp, lambda x, y: spl_char.join([x, y]))) # printing result print("The Cumulative List Splits : " + str(res))
The original list is : ['gfg-is-all-best'] The Cumulative List Splits : ['gfg', 'gfg-is', 'gfg-is-all', 'gfg-is-all-best']
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