list.__getitem__
не поддерживает какой-либо синтаксис выбора, хотя вы можете использовать operator.itemgetter
для достижения чего-то похожего:
from operator import itemgetter
print(itemgetter(1,8,9)(columns))
Тем не менее, класс может определить __getitem__
для поддержки чего-то подобного. Например,
import operator
class ProjectionList(list):
def __getitem__(self, index):
if isinstance(index, tuple):
return operator.itemgetter(*index)(self)
else:
return super().__getitem__(index)
Тогда
>>> z = ProjectionList([1,2,3])
>>> z[0]
1
>>> z[0,2]
(1, 3)