Python – Agrupar sublistas por otra lista

A veces, al trabajar con listas, podemos tener un problema en el que necesitamos agrupar todas las sublistas, separadas por elementos presentes en diferentes listas. Este tipo de agrupación personalizada es una utilidad poco común, pero tener una solución para esto siempre puede ser útil. Vamos a discutir cierta forma en que se puede realizar esta tarea.

Método n. ° 1: Usar bucle + generador (rendimiento)
Esta es una forma de fuerza bruta en la que se puede realizar esta tarea. En esto, iteramos la lista y hacemos grupos dinámicamente usando yield. Realizamos un seguimiento de los elementos ocurridos y reiniciamos la lista cuando encontramos un elemento en la segunda lista.

# Python3 code to demonstrate 
# Group Sublists by another List
# using loop + generator(yield)
  
# helper function
def grp_ele(test_list1, test_list2):
    temp = []
    for i in test_list1: 
        if i in test_list2:
            if temp:  
                yield temp 
                temp = []
            yield i  
        else: 
            temp.append(i)
    if temp: 
        yield temp
  
# Initializing lists
test_list1 = [8, 5, 9, 11, 3, 7]
test_list2 = [9, 11]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Group Sublists by another List
# using loop + generator(yield)
res = list(grp_ele(test_list1, test_list2))
  
# printing result 
print ("The Grouped list is : " + str(res))
Producción :

The original list 1 is : [8, 5, 9, 11, 3, 7]
The original list 2 is : [9, 11]
The Grouped list is : [[8, 5], 9, 11, [3, 7]]

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 *