Python – 成对元素分组
有时,在处理Python记录时,我们可能会遇到一个问题,即我们将元组列表作为数据,并且我们希望将所有形成链的元素分组,即彼此间接成对或连接组件。这类问题可能发生在竞争性编程等领域。让我们讨论一下可以执行此任务的特定方式。
Input : test_list = [(1, 3), (4, 5)]
Output : []
Input : test_list = [(1, 3), (3, 5)]
Output : [{1, 3, 5}]
方法:使用循环 + 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}]