python - 根据列表列表检查列表中是否存在组合
问题描述
如果我有一个整数列表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
解决方案
使用迭代工具?
from itertools import combinations
for i in combinations(t, len(t)): if i in s: return True;
或使用排序:
t = sorted(t)
for i in s: if sorted(i)==t: return True
推荐阅读
- python - 用于自动在线工具查询的脚本
- c# - 为什么推荐的 dispose 模式会在层次结构的每个级别添加一个已处理字段?
- sql - 更新多行并从另一个表插入新行
- javascript - 在 jQuery 中添加或删除类
- python - KeyError 熊猫数据框
- amazon-web-services - AWS ElasticSearch 请求未在 Postman 中给出响应
- terminal - 如何在 PlistBuddy 中输入数据
- git - Git:强制拉动以覆盖本地更改
- android - 即使页面已成功完成加载,Android WebView 也不显示网页
- ios - 如何在 Swift 中获取推送通知的时间戳?