📜  Python – 按另一个列表分组子列表

📅  最后修改于: 2022-05-13 01:55:48.287000             🧑  作者: Mango

Python – 按另一个列表分组子列表

有时,在使用列表时,我们可能会遇到需要对所有子列表进行分组的问题,这些子列表由不同列表中的元素分隔。这种类型的自定义分组是不常见的实用程序,但解决这些问题总是很方便。让我们讨论可以执行此任务的特定方式。

方法#1:使用循环+生成器(产量)
这是可以执行此任务的蛮力方式。在此,我们迭代列表并使用 yield 动态地创建组。当我们在第二个列表中找到元素时,我们会跟踪发生的元素并重新启动列表。

# 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]]