Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中从类列表中随机选择x个项目_Python_List_Class_Random_Jython - Fatal编程技术网

在python中从类列表中随机选择x个项目

在python中从类列表中随机选择x个项目,python,list,class,random,jython,Python,List,Class,Random,Jython,在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) 'PO78141', 13, ' B ', 40

在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)
'PO78141', 13, ' B ', 40
我创建了一个类列表,名为类中的项列表,有4000行,如下所示:

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)
'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
编辑 好的,这似乎奏效了。然而,它正在返回这个。如何使其以上述格式返回?

您可以使用选择3到20之间的数字,并采集行样本:

i = 0
while i < randint(3, 20):
    # Display code here.
    i += 1
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)

不要在python中命名任何列表,因为这会影响内置类型。要从列表中选择N个随机元素,请使用random.sample:randint不是序列。对于randint3中的i,20会因类型错误而失败。现在,您将在每次循环时根据新的随机值测试i。结果会很好的,但你最好还是在《我在xrangerandint3》中写一篇文章。20:你说我想要它回来到底是什么意思?