如果我有一个整数列表 S: [[1,2,3],[3,4,5],[5,6,7]]
,和一个列出 T: [2,3,1]
。如果 T 作为组合包含在 S 中,我想返回 true。假设 S
的每个元素与 T
的长度相同。
在这种情况下,我想返回 true。
限制:不能进行任何类型的排序,注意 S 具有所有唯一列表,但在一个列表中,它可以有重复元素。
我怎样才能尽可能高效地做到这一点。我可以遍历 S
的每个元素并将它变成一个集合,然后将它与 set(T)
进行比较,但是如果 S< 的大小,这似乎很慢
并且 S
的每个元素的长度变大。
最佳答案
你可以使用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
关于python - 根据列表列表检查列表中组合的存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50207041/