7

在 jython 中,我有一个这样定义的对象类:

class Item:
  def __init__(self, pid, aisle, bay, hits, qtyPerOrder):
    self.pid = pid
    self.aisle = int(aisle)
    self.bay = bay
    self.hits = int(hits)
    self.qtyPerOrder = int(qtyPerOrder)

我创建了一个名为“列表”的类列表,其中包含 4000~ 行,如下所示:

'PO78141', 13, ' B ', 40

我试图在 3 到 20 的范围内随机选择一个名为 x 的数字。然后,代码将在列表中选择 x 行。

例如:如果 x = 5 我希望它返回:

'PO78141', 13, ' B ', 40
'MA14338', 13, ' B ', 40
'GO05143', 13, ' C ', 40
'SE162004', 13, ' F ', 40
'WA15001', 13, ' F ', 40

编辑 好的,这似乎有效。但是,它会返回此 < main .Item object at 0x029990D0>。我如何让它以上述格式返回?

4

3 回答 3

12

您可以使用该random模块来选择 3 到 20 之间的数字,并获取行样本:

import random

sample_size = random.randint(3, 20)
sample = random.sample(yourlist, sample_size)

for item in sample:
    print '%s, %d, %s, %d' % (item.pid, item.aisle, item.bay, item.hits)
于 2012-09-19T20:01:11.613 回答
0

备注 - 我将列表重命名为lst. 假设您有一个对象列表,请尝试以下操作:

from random import randint
for item in lst[:randint(3, 20)]:
    (item.pid, item.aisle, item.bay, item.hits)
于 2012-09-19T22:03:16.063 回答
-1
i = 0
while i < randint(3, 20):
    # Display code here.
    i += 1
于 2012-09-19T20:00:08.407 回答