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

xと呼ばれる3から20の範囲内の数字をランダムに選択しようとしています。次に、コードはリスト内の x 行を選択します。

例: x = 5 の場合、次のように返します。

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

編集 OK、それはうまくいくようです。ただし、この < 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 に答える