dimanche 5 janvier 2020

Randomly select elements of lists containing tuples?

I have a list containing single items and tuples of "subitems" as follows:

items = ['item_1', 'item_2', 'item_3', 'item_4', ('item_5a', 'item_5b'), 'item_6', ('item_7a', 'item_7b')]

I now want to select n (here 4) number of items from said list, for example using np.random.choice:

>>> np.random.choice(items, 4, replace=False)
array([('item_5a', 'item_5b'), 'item_6', ('item_7a', 'item_7b'), 'item_4'],
      dtype=object)

This works but it considers tuples as one item. What im looking for is:

  • Keep the items within a tuple grouped – always select together
  • Select n items including "subitems" in a tuple

Something like this:

>>> choose_n_items(items, 4, replace=False)
array([('item_5a', 'item_5b'), 'item_6', 'item_4'],
      dtype=object)

Is there some function with this functionality? Thanks in advance. BBQuercus ;)




Aucun commentaire:

Enregistrer un commentaire