Python 仅当列表中不存在元组的其他排列时,将元组添加到列表或集合的有效方法

Python 仅当列表中不存在元组的其他排列时,将元组添加到列表或集合的有效方法,python,python-3.x,Python,Python 3.x,假设(1,2,3,4)已存在于我的列表/集合中。当我添加另一个元组(3,4,2,1)时,除了顺序之外没有其他元素,它不应该被添加。就列表而言,您的元组没有顺序。使用冻结集而不是元组,然后将它们添加到集合,最终将得到唯一的冻结集列表。如果以后元素的顺序对您很重要,您将不得不重新创建它。如果元组没有重复的元素,您可以将它们存储在集合中,作为冻结集s。对于集合,您可以提供一个哈希函数,对元组的成员进行预排序,当然还可以重新定义cmp或eq,以现在为准,因此,它们实际上被视为相等的,而不仅仅是许多不幸的

假设(1,2,3,4)已存在于我的列表/集合中。当我添加另一个元组(3,4,2,1)时,除了顺序之外没有其他元素,它不应该被添加。

就列表而言,您的元组没有顺序。使用
冻结集
而不是
元组
,然后将它们添加到
集合
,最终将得到唯一的冻结集列表。如果以后元素的顺序对您很重要,您将不得不重新创建它。

如果元组没有重复的元素,您可以将它们存储在
集合中,作为
冻结集
s。对于集合,您可以提供一个哈希函数,对元组的成员进行预排序,当然还可以重新定义cmp或eq,以现在为准,因此,它们实际上被视为相等的,而不仅仅是许多不幸的哈希冲突。为此,元组需要是它自己的类型。您始终可以将冻结集解压回列表中
def add(list1, list2):
    x = set(list1)^set(list2)
    if(len(x)>0):
        return list1+list2