查找唯一的元组列表,无论元组内的顺序如何

ani*_*jha 4 python string tuples python-3.x

给定输入:

[('is','my','order'), ('my','order', 'is'), ('temp', 'ques'), ('ques','temp')]
Run Code Online (Sandbox Code Playgroud)

期望的输出:

[('is','my','order'), ('temp', 'ques')]
Run Code Online (Sandbox Code Playgroud)

在输出中,元组的顺序或元组内容的顺序并不重要。

Moi*_*dri 5

因为对于您来说顺序并不重要,您可以使用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')])
Run Code Online (Sandbox Code Playgroud)

首先对每个嵌套元组的内容进行排序,以确保您的集合将具有公共项的元组视为相同。然后我再次将其类型转换为tuple因为sorted返回list是不可散列的。最后,set删除元组的重复条目。

请参阅“设置”文档以获取更多详细信息。