Selecciona aleatoriamente x número de elementos de la lista de clases en Python

En jython, tengo una clase de objetos definidos así:

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) 

He creado una lista de clases llamada “lista” de los elementos de la clase con 4000 líneas que tienen este aspecto:

 'PO78141', 13, ' B ', 40 

Estoy tratando de seleccionar aleatoriamente un número dentro del rango de 3 y 20 llamado x. Luego, el código seleccionará x número de líneas en la lista.

Por ejemplo: si x = 5 quiero que regrese:

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

EDITAR Ok, eso parece funcionar. Sin embargo, está devolviendo este <objeto principal de artículo en 0x029990D0>. ¿Cómo lo consigo para devolverlo en el formato de arriba?

Puede usar el módulo random para elegir un número entre 3 y 20, y para tomar una muestra de líneas:

 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) 

Observación – Cambié el nombre de la lista a lst . Suponiendo que tiene una lista de objetos, intente lo siguiente:

 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