如果我有一个整数列表和一个单列表。如果T作为一个组合包含在S中,我想返回true。假设S: [[1,2,3],[3,4,5],[5,6,7]]的每个元素的长度与T: [2,3,1]的相同。
在这种情况下,我想返回true。
限制:没有任何类型的排序,并且注释s有所有唯一的列表,但是在列表中,它可以有重复的元素。
我怎样才能尽可能有效地做到这一点。我可以遍历S的每个元素并将其转换为一个集合,并将其与T进行比较,但是如果S的大小和set(T)的每个元素的长度变大,这似乎非常慢。

最佳答案

您可以使用sorted

>>> S = [[1,2,3],[3,4,5],[5,6,7]]
>>> T = [2,3,1]
>>> any(sorted(T) == sorted(x) for x in S)
True

10-07 19:10
查看更多