Access multiple elements of list knowing their index Access multiple elements of list knowing their index python python

Access multiple elements of list knowing their index


You can use operator.itemgetter:

from operator import itemgetter a = [-2, 1, 5, 3, 8, 5, 6]b = [1, 2, 5]print(itemgetter(*b)(a))# Result:(1, 5, 5)

Or you can use numpy:

import numpy as npa = np.array([-2, 1, 5, 3, 8, 5, 6])b = [1, 2, 5]print(list(a[b]))# Result:[1, 5, 5]

But really, your current solution is fine. It's probably the neatest out of all of them.


Alternatives:

>>> map(a.__getitem__, b)[1, 5, 5]

>>> import operator>>> operator.itemgetter(*b)(a)(1, 5, 5)


Another solution could be via pandas Series:

import pandas as pda = pd.Series([-2, 1, 5, 3, 8, 5, 6])b = [1, 2, 5]c = a[b]

You can then convert c back to a list if you want:

c = list(c)