Я не был доволен ни одним из этих подходов, поэтому я придумал класс Flexlist
, который позволяет гибкую индексацию по целому, слайсу или списку индексов:
class Flexlist(list):
def __getitem__(self, keys):
if isinstance(keys, (int, slice)): return list.__getitem__(self, keys)
return [self[k] for k in keys]
Который, для вашего примера, вы бы использовали как:
L = Flexlist(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
Idx = [0, 3, 7]
T = L[ Idx ]
print(T) # ['a', 'd', 'h']