我的任务结束了,我不知道我现在的处境,代码现在是这样的:
def radixsorting1(n,m):
div=1
mod=10
bin_list=[]
alist=[]
r=[]
s=[]
for bins in range(0,10):
bin_list.append(Queue())
for k in range(0,m):
r.append(random.randint(1,10**n))
if not len(r)==0:
o=max(r)
y=len(str(o))
for p in range(y):
for num in r:
minsta_tal=num%mod
minsta_tal=int(minsta_tal//div)
bin_list[minsta_tal].put(num)
new_list=[]
for bins in bin_list:
while not bins.isempty():
new_list.append(bins.dequeue())
alist=new_list
return alist
我一直在尝试创建10个队列,将它们放入一个列表中,然后随机从1到10^n的m个数字。假设我得到66和72,然后我首先按“小数字”对它们进行排序,也就是我的数字中的6和2,然后将它们放入一个lost中,然后再重复这个过程,但对于数字6和7(较大的数字)。在其当前形状中,我得到错误“Queue”object is not iterable。在
我的排队课看起来像这样,我觉得这个还可以。在
^{pr2}$
你需要添加更多的代码使它成为iterable。
__iter__
应返回迭代器。迭代器应该有一个next
方法。在看看这个:
Build a Basic Python Iterator
所以我的理解是你要迭代的是
self.lista
的内容。。。为什么不直接返回lista
的迭代器呢。在以下是最简单的方法:
很难看出你到底想要什么。。如果您要做的是空的
^{pr2}$lista
当您迭代它(队列是一种fifo类似的交易),那么它应该这样做:相关问题 更多 >
编程相关推荐