Простой подход был бы:
>>> [[[mylist[i], mylist[j]], [mylist[k], mylist[l]]] for [i, j], [k, l] in myindexes]
[[['hi', 'hello'], ['bye', 'cya']],
[['hi', 'bye'], ['hello', 'cya']],
[['hi', 'cya'], ['hello', 'bye']]]
Или вот,
>>> [[[mylist[i3] for i3 in i2] for i2 in i1] for i1 in myindexes]
[[['hi', 'hello'], ['bye', 'cya']],
[['hi', 'bye'], ['hello', 'cya']],
[['hi', 'cya'], ['hello', 'bye']]]
Если вы хотите попробовать numpy
, np.vectorize
:
>>> import numpy as np
>>> np.vectorize(mylist.__getitem__)(myindexes).tolist()
[[['hi', 'hello'], ['bye', 'cya']],
[['hi', 'bye'], ['hello', 'cya']],
[['hi', 'cya'], ['hello', 'bye']]]
Или np.take
>>> np.take(mylist, myindexes).tolist()
[[['hi', 'hello'], ['bye', 'cya']],
[['hi', 'bye'], ['hello', 'cya']],
[['hi', 'cya'], ['hello', 'bye']]]