📜  Python|元组记录数据中的交集

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

Python|元组记录数据中的交集

有时,在处理数据时,我们可能会遇到需要在收到的两个列表之间查找匹配记录的问题。这是一个非常常见的问题,记录通常以元组的形式出现。让我们讨论一些可以解决这个问题的方法。

方法#1:使用列表推导
列表理解可以选择在一行中执行此任务的方法,而不是运行循环来查找公共元素。在此,我们只迭代单个列表并检查是否有任何元素出现在另一个列表中。

# Python3 code to demonstrate working of
# Intersection in Tuple Records Data
# Using list comprehension
  
# Initializing lists
test_list1 = [('gfg', 1), ('is', 2), ('best', 3)]
test_list2 = [('i', 3), ('love', 4), ('gfg', 1)]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Intersection in Tuple Records Data
# Using list comprehension
res = [ele1 for ele1 in test_list1 
       for ele2 in test_list2 if ele1 == ele2]
  
# printing result
print("The Intersection of data records is : " + str(res))
输出 :
The original list 1 is : [('gfg', 1), ('is', 2), ('best', 3)]
The original list 2 is : [('i', 3), ('love', 4), ('gfg', 1)]
The Intersection of data records is : [('gfg', 1)]

方法#2:使用set.intersection()
也可以使用通用集合交集以较小的方式执行此任务。在此,我们首先将记录列表转换为集合,然后使用intersection()执行其交集。

# Python3 code to demonstrate working of
# Intersection in Tuple Records Data
# Using set.intersection()
  
# Initializing lists
test_list1 = [('gfg', 1), ('is', 2), ('best', 3)]
test_list2 = [('i', 3), ('love', 4), ('gfg', 1)]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Intersection in Tuple Records Data
# set.intersection()
res = list(set(test_list1).intersection(set(test_list2)))
  
# printing result
print("The Intersection of data records is : " + str(res))
输出 :
The original list 1 is : [('gfg', 1), ('is', 2), ('best', 3)]
The original list 2 is : [('i', 3), ('love', 4), ('gfg', 1)]
The Intersection of data records is : [('gfg', 1)]