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