Способ выбора конкретных индексов из объекта, где нарезка не помогает

Я ищу способ получить доступ к объекту несколько раз простым способом.

Ex. 1)

ls = [i for i in range(100)]; print(ls[0], ls[32], ls[95])

Ex. 2)

js = {'key0': 'val0', ...}; print (js['keyN'], js['keyM'])

Я ищу способ указать объект только один раз, а затем указать нужные индексы (что-то вроде слайса). Смысл ls[0,32,95], или же js['keyN][inner_keyN_M, innerkeyN_M+3]

1 ответ

Решение

Вы можете использовать itemgetterмодуль.

from operator import itemgetter
ls = [i for i in range(100)]
ids = [0, 32, 95]
print(itemgetter(*ids)(ls))

Выход

(0, 32, 95)

Вы также можете использовать понимание списка:

ls = [i for i in range(100)]
ids = [0, 32, 95]

print([ls[id] for id in ids])
Другие вопросы по тегам