python - 如何确定至少一个 2 项集是否在 3 项集列表中?
问题描述
需要找出一个 3 项集列表是否是至少一个 2 项集的超集。每个具有频繁大小为 2 子集的 3 项集都已在您的列表中。该列表不包含重复集。
这是我尝试的最后一个代码。如果有任何子集/超集,输出应该是一个小的集合列表。使用此代码,尽管我似乎得到了更大的列表而不是更小的列表。已编辑...
itemset2 =[{'', ''}, {'', ''}, {'', ''}, {'', ''}, {'', ''}, {'', ''},
{'', ''}, {'', ''}, {'', ''}, {'', ''}, {'', ''}]
itemset3 =[{'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''},
{'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''},
{'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''},
{'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''},
{'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''},
{'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''}, {'', '', ''}]
stuff = itemset2
final = [set(y) for y in {frozenset(x) for x in stuff}]
final
nostuff=itemset3
ablanklist=[]
ablanklist2=[]
blanklist=set()
for things in nostuff:
ablanklist.append(list(things))
for stuff in ablanklist:
for items in final:
if stuff[0] and stuff[1] in items:
print(items)
#print(final)
解决方案
条件是 的简单应用any
。给定一个trio
元素three-itemset
if any(pair < trio for pair in two-itemset):
将告诉您任何对是否是给定 3 元素集的子集。
推荐阅读
- apache-spark - PySpark - Emr- NullpointerException 尝试插入 Glue(s3) 表时
- node.js - 建立依赖于另一个规则的 bazel 规则
- node.js - 尝试使用虚假 JSON 数据,但无法在 HTML 页面中更新
- javascript - 如何在反应中切换模态并传递子道具?
- flutter - 有什么作用?。在飞镖做什么?
- vue.js - 如何在普通的 javascrip 文件中使用 mixins(不是单个文件模板)
- java - dynamodb updateItem中的updateExpression中的“add”和“set”有什么区别以及如何使用它们?
- linux - Linux bash 脚本
- c++ - BCryptGenRandom STATUS_INVALID_HANDLE
- linux - bash脚本用环境变量替换文件中的字符串值