Python 查找元组的唯一列表,而不考虑元组内部的顺序

Python 查找元组的唯一列表,而不考虑元组内部的顺序,python,python-3.x,string,tuples,Python,Python 3.x,String,Tuples,给定输入: ['is'、'my'、'order'、'my'、'order'、'is'、'temp'、'ques'、'ques'、'temp'] 期望输出: ['is'、'my'、'order'、'temp'、'ques'] 在输出中,元组的顺序或元组内容的顺序无关紧要。因为对于您来说,顺序无关紧要,您可以使用set来实现这一点: >>> input_list = [('is','my','order'), ('my','order', 'is'), ('temp', 'ques

给定输入:

['is'、'my'、'order'、'my'、'order'、'is'、'temp'、'ques'、'ques'、'temp'] 期望输出:

['is'、'my'、'order'、'temp'、'ques']
在输出中,元组的顺序或元组内容的顺序无关紧要。

因为对于您来说,顺序无关紧要,您可以使用set来实现这一点:

>>> input_list = [('is','my','order'), ('my','order', 'is'), ('temp', 'ques'), ('ques','temp')]

>>> set(tuple(sorted(l)) for l in input_list)
set([('ques', 'temp'), ('is', 'my', 'order')])
首先对每个嵌套元组的内容进行排序,以确保集合将具有公共项的元组视为相同的。然后我再次将其类型转换为tuple,因为sorted返回的列表是不可修改的。最后,set删除元组的重复项


请参阅以了解更多详细信息。

因为对于您来说,订单无关紧要,您可以使用set来实现这一点:

>>> input_list = [('is','my','order'), ('my','order', 'is'), ('temp', 'ques'), ('ques','temp')]

>>> set(tuple(sorted(l)) for l in input_list)
set([('ques', 'temp'), ('is', 'my', 'order')])
首先对每个嵌套元组的内容进行排序,以确保集合将具有公共项的元组视为相同的。然后我再次将其类型转换为tuple,因为sorted返回的列表是不可修改的。最后,set删除元组的重复项


有关详细信息,请参阅。

您可以对每个子列表进行排序,然后将它们添加到列表中,删除所有重复项

output_list = []
for tup in map(sorted, tuple_list):
  if tup not in output_list:
    output_list.append(tup)
print(output_list)

您可以对每个子列表进行排序,然后将它们添加到列表中,删除所有重复项

output_list = []
for tup in map(sorted, tuple_list):
  if tup not in output_list:
    output_list.append(tup)
print(output_list)
这将为您提供数据集中所有唯一值的集合。也许没有帮助

因此,假设您希望保持元组结构,您可能需要将每个元组与具有相同长度的其他元组进行比较

这将为您提供数据集中所有唯一值的集合。也许没有帮助


因此,如果你想保持元组结构

,你可能需要检查每个元组与每个元组的长度相同,只有在这里可以有不在初始数据中的选项。这里只有在初始数据没有的选项,如果它们的顺序不重要的话,可以考虑用集合来代替第一个位置。元组。如果它们的顺序不重要,可以考虑使用集合而不是元组。