Suppose we have a list and a list of lists of positions to extract from the list. list={a,b,c,d,e,f,g,h,i}; positions={{1,2,3},{5,6,7},{2,5,9}}; result=list[[#]]&/@positions; {{a, b, c}, {e, f, g}, {b, e, i}} Is there a more efficient way to do this?