繁体   English   中英

无论元组内的顺序如何,都可以找到唯一的元组列表

[英]Find unique list of tuples irrespective of order inside tuple

给定输入:

[('is','my','order'), ('my','order', 'is'), ('temp', 'ques'), ('ques','temp')]

所需的 output:

[('is','my','order'), ('temp', 'ques')]

在 output 中,元组的顺序或元组内容的顺序无关紧要。

因为对于您的订单无关紧要,您可以使用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后的返回list是不可散列的。 最后, set删除元组的重复条目。

有关详细信息,请参阅“设置”文档

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

output_list = []
for tup in map(sorted, tuple_list):
  if tup not in output_list:
    output_list.append(tup)
print(output_list)
mytuples = [('one','two'), ('two','one)]
myset=set()
for x in mytuples:
    myset.update(x)

print(myset)
output {'two', 'one'}

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

因此,假设您要保留元组结构,您可能必须检查每个元组与具有相同长度的每个其他元组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM