У меня есть отсортированный массив:
arr = ['Alexander', 'Belman', 'Erik', 'Nicholas', ... , 'Zahir']
Я хотел бы сделать что-то вроде этого:
arr['B':'M'] # ['Belman', 'Erik']
Как я могу создать класс и реализовать
__getitem__
__index__
правильным способом для достижения этой цели?
Я подумываю использовать что-то вроде
def __getitem__(self, key):
if isinstance(key, slice):
return [self.list[i] for i in range(key.start, key.stop)]
return self.list[key]
, но я не знаю, как индексировать строки. Как я могу создать метод
__index__
, чтобы применить бинарный поиск к self.list
и вернуть правильные индексы?