从列表中删除元组,类似于在另一个列表中的元组

时间:2019-10-25 09:32:18

标签: python list tuples

我是python和一般编程人员的新手。我从列表中删除与另一个列表中的元组具有相似性的元组时遇到问题。

List1=[(1,2,3,4,5),(1,3,6,7,8)]

List2=[(1,2,3,7,9),(1,4,8,9,10),(1,3,8,9,10)]

我想从List2中删除在List1元组中具有3个相似元素的元组。

Outputlist=[(1,4,8,9,10)]

最有效的方法是什么? 预先感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用for循环来完成此操作,每次符合条件时,请从List2中删除该元素,然后转到下一个元素:

List1=[(1,2,3,4,5),(1,3,6,7,8)]
List2=[(1,2,3,7,9),(1,4,8,9,10),(1,3,8,9,10)]

for index, elem2 in enumerate(List2):
    for elem1 in List1:
        # Find common items using set intersection.
        commonItems = len(set(elem2).intersection(set(elem1)))
        if commonItems == 3:
            del List2[index]
            break

print(List2)

这将返回:

[(1, 4, 8, 9, 10)]