如何在python中为Apriori算法组合列表的字符串元素?
Posted
技术标签:
【中文标题】如何在python中为Apriori算法组合列表的字符串元素?【英文标题】:How to combine string elements of a list for Apriori Algorithm in python? 【发布时间】:2021-04-04 05:09:17 【问题描述】:所以我正在尝试编写 Apriori 算法。 我这里有
L1= ['apple', 'banana','orange','mango]
此列表已通过支持阈值,现在我必须将项目组合为另一个支持阈值,应该如下所示:
C2 = [['apple','banana'],['apple','orange'],['apple','mango']]
【问题讨论】:
您只是在寻找l = L1.pop(0)
和C2 = [[l, val] for val in L1]
之类的东西吗?或者更具体的东西?
没有。我正在寻找一个答案来组合每个元素,如 C2 = [['apple','banana'],['apple','orange'],['apple','mango']] 然后 C3 将是 [ [香蕉,橙子],[香蕉,芒果]]
我的示例完全像那样创建了 C2...
【参考方案1】:
L1= ['apple', 'banana','orange','mango']
C2 = [[L1[0], i] for i in L1[1:]]
结果C2
:
[['apple', 'banana'], ['apple', 'orange'], ['apple', 'mango']]
要对列表中的所有项目运行此操作:
C2 = []
for i in L1:
l = [[i, x] for x in L1 if not i == x]
C2.extend(l)
【讨论】:
谢谢!但是,如果我将下一个元素与 [['banana','orange'],['banana','mango']] 等其他元素结合起来,我该怎么办?请注意,它会跳过 ['banana', 'apple'] 因为它与 ['apple', 'banana'] 相同 您应该使用 list.pop(0) 在 for i in range(len(L1)) 的循环中创建列表,这样您就不会重复。 当我使用 pop 时它返回一个空列表 @MessyMaze 在这种情况下,我们必须包含另一个 for 循环,我已经更新了答案。不要使用pop
,因为它会从 L1 中删除项目。以上是关于如何在python中为Apriori算法组合列表的字符串元素?的主要内容,如果未能解决你的问题,请参考以下文章
计算组合在 Dataframe 列中出现的频率 - Apriori 算法