Python indirect list indexing

Viewed 47

I would like to get a list containing elements from a source list in the order specified by the list of indexes.

Sample 1:

source = ["A", "B", "C", "D"]
indexes = [3, 0, 2, 1]
Result expected: [source[3], source[0], source[2], source[1]] equal ["D", "A", "C", "B"]

Sample 2:

source = ["A", "B", "C", "D"]
indexes = [2, 1, 1]
Result expected: [source[2], source[1], source[1]] equal ["C", "B", "B"]

I use a generator:

def indexator (source, indexes):
  for i in indexes:
    yield source[i]

result = list (indexator (source, indexes))

It works well but my question is: does Python have more elegant way for solve the specified task? Maybe there is a built-in language construction for indirect indexing?

0 Answers
Related