📜  Python – 成对元素分组

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

Python – 成对元素分组

有时,在处理Python记录时,我们可能会遇到一个问题,即我们将元组列表作为数据,并且我们希望将所有形成链的元素分组,即彼此间接成对或连接组件。这类问题可能发生在竞争性编程等领域。让我们讨论一下可以执行此任务的特定方式。

方法:使用循环 + set() + intersection()
上述功能的组合可以用来解决这个问题。在此,我们对所有元素进行迭代,然后对嵌套循环中出现的所有元素进行迭代。执行元素的交集,如果发现任何元素相似,即大小> = 0,则将元组合并到相似链中。

# Python3 code to demonstrate working of 
# Paired elements grouping
# Using loop + set() + intersection()
  
# initializing list
test_list = [(1, 3), (4, 5), (1, 7), (3, 4), (7, 8)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Paired elements grouping
# Using loop + set() + intersection()
res = []
for sub in test_list:
    idx = test_list.index(sub)
    sub_list = test_list[idx + 1:]
    if idx <= len(test_list) - 2:
        for ele in sub_list:
            intrsct = set(sub).intersection(set(ele))
            if len(intrsct) > 0:
                res.append(set(sub + ele))
                  
# printing result 
print("The grouped list : " + str(res)) 
输出 :
The original list is : [(1, 3), (4, 5), (1, 7), (3, 4), (7, 8)]
The grouped list : [{1, 3, 7}, {1, 3, 4}, {3, 4, 5}, {8, 1, 7}]