[英]Randomly select x number of items from class list in python
在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)
我创建了一个名为“list”的类列表,该类列表中的项目有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对象0x029990D0>。 我如何让它以上述格式返回?
您可以使用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)
备注 - 我将列表重命名为lst
。 假设您有一个对象列表,请尝试以下操作:
from random import randint
for item in lst[:randint(3, 20)]:
(item.pid, item.aisle, item.bay, item.hits)
i = 0
while i < randint(3, 20):
# Display code here.
i += 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.