Create batches such that the data for one batch only come from the same tensor in a list?

Hi, I am trying to train a neural network by creating batches such that data for any batch come from the same tensor from a list.

Specifically, suppose my_list=[t1,t2,t3] is a list of tensor, during training, I would like to have all data for each training batch come from either t1, t2 or t3, meaning that any batch cannot mix data from two different tensors. One possible way I can think of is to use 3 dataloaders for these 3 tensors and iterate through them, but this may be complicated if I want to shuffle their order during training. I am wondering if anyone know any better ways to do this?

Thank you!