Python – División de lista acumulativa

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))
Producción

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))
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *