Python 查找元组的唯一列表,而不考虑元组内部的顺序
给定输入: ['is'、'my'、'order'、'my'、'order'、'is'、'temp'、'ques'、'ques'、'temp'] 期望输出: ['is'、'my'、'order'、'temp'、'ques']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
在输出中,元组的顺序或元组内容的顺序无关紧要。因为对于您来说,顺序无关紧要,您可以使用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)
这将为您提供数据集中所有唯一值的集合。也许没有帮助
因此,假设您希望保持元组结构,您可能需要将每个元组与具有相同长度的其他元组进行比较
这将为您提供数据集中所有唯一值的集合。也许没有帮助
因此,如果你想保持元组结构,你可能需要检查每个元组与每个元组的长度相同,只有在这里可以有不在初始数据中的选项。这里只有在初始数据没有的选项,如果它们的顺序不重要的话,可以考虑用集合来代替第一个位置。元组。如果它们的顺序不重要,可以考虑使用集合而不是元组。