如何解决Python 生成器以特定长度、增量和最大值填充数组
我下面的示例用数字填充 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 举报,一经查实,本站将立刻删除。