分解 python 个过程
Break down python process
我想尝试从我从 apriori using python 下载的先验算法中分解一些行代码,因为当我尝试计算巨大的数据集时它会给我的内存错误。
这是我刚发现的一些问题。
def joinSet(itemSet, length):
"""Join a set with itself and returns the n-element itemsets"""
return set([i.union(j) for i in itemSet for j in itemSet if len(i.union(j)) == length])
我想知道触发错误时 return var 的实际大小,所以我尝试将这些代码分解为这个。
def joinSet(itemSet, length):
"""Join a set with itself and returns the n-element itemsets"""
ret = []
for i in itemSet:
for j in itemSet:
if len(i.union(j)) == length:
ret.append(i.union(j))
return ret
所以我可以监控每一步,但我的分解代码给出的结果与原来的不一样。
我到底想念什么?
如果我的方法出错,如果你能给我实际的解决方案,我也会非常感激。
谢谢你。
我觉得可能是原来returns一个集合,而你返回的是一个列表
def joinSet(itemSet, length):
"""Join a set with itself and returns the n-element itemsets"""
ret = []
for i in itemSet:
for j in itemSet:
if len(i.union(j)) == length:
ret.append(i.union(j))
return set(ret)
此外,我认为您可以通过对原始文件进行以下编辑来节省大量内存:
def joinSet(itemSet, length):
"""Join a set with itself and returns the n-element itemsets"""
return {i.union(j) for i in itemSet for j in itemSet if len(i.union(j)) == length}
这是一个集理解要求python >= 2.7
我想尝试从我从 apriori using python 下载的先验算法中分解一些行代码,因为当我尝试计算巨大的数据集时它会给我的内存错误。 这是我刚发现的一些问题。
def joinSet(itemSet, length):
"""Join a set with itself and returns the n-element itemsets"""
return set([i.union(j) for i in itemSet for j in itemSet if len(i.union(j)) == length])
我想知道触发错误时 return var 的实际大小,所以我尝试将这些代码分解为这个。
def joinSet(itemSet, length):
"""Join a set with itself and returns the n-element itemsets"""
ret = []
for i in itemSet:
for j in itemSet:
if len(i.union(j)) == length:
ret.append(i.union(j))
return ret
所以我可以监控每一步,但我的分解代码给出的结果与原来的不一样。
我到底想念什么? 如果我的方法出错,如果你能给我实际的解决方案,我也会非常感激。 谢谢你。
我觉得可能是原来returns一个集合,而你返回的是一个列表
def joinSet(itemSet, length):
"""Join a set with itself and returns the n-element itemsets"""
ret = []
for i in itemSet:
for j in itemSet:
if len(i.union(j)) == length:
ret.append(i.union(j))
return set(ret)
此外,我认为您可以通过对原始文件进行以下编辑来节省大量内存:
def joinSet(itemSet, length):
"""Join a set with itself and returns the n-element itemsets"""
return {i.union(j) for i in itemSet for j in itemSet if len(i.union(j)) == length}
这是一个集理解要求python >= 2.7