问题描述
我下面的示例用数字填充 6 个桶,这些数字以 2 为增量加到 16。
我的问题是,我想展示多种方法来填充 6-10 个存储桶,例如最多 34、94、250 个。为了在输出中创建更合理数量的结果并且不超过可用内存,我需要将增量增加到 2 以上。我不知道如何使用我放在一起的生成器来做到这一点。
import pandas as pd
class mygenerator:
def __init__(self,itsize,itstep,nxtmaxval):
self.itsize = itsize # Number of elements
self.itstep = itstep # Step parameter
self.nxtmaxval=nxtmaxval
def __iter__(self):
self.itvalue = None
return self
def __next__(self):
if self.itvalue is None: # Initialization of the iterator.
self.itvalue = [0]*(self.itsize)
elif self.itvalue[0] ==self.nxtmaxval: #Exits here when equal to nxtmaxval.
self.itvalue = None
return None
while True: #Populates the output list.
for i in range(self.itsize-1,-1,-1):
if self.itvalue[i]<self.nxtmaxval:
self.itvalue[i] += self.itstep
break
else:
self.itvalue[i] = 0
if sum(self.itvalue) == self.nxtmaxval:
break
return list(self.itvalue) #Return output list.
g=[]
myiter = iter(mygenerator(itsize=6,itstep=2,nxtmaxval=16))
for i in myiter:
if i is None:
break
else:
g.append(i)
pd.DataFrame(g)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)