Несколько опций:
- определяет псевдоним, как предложено Джона Бишопом
- , код рефакторинга и функция make, которая возвращает список
- , рефакторинг кода для уменьшенияуровень отступа
Таким образом, вы можете заменить
word_list = []
for i in range(len(brk)):
if i == 0:
word_list.append([
att.get_annotations_between_timepoints(
0, brk[0].time
) for att in all_atts
])
else:
word_list.append([
att.get_annotations_between_timepoints(
brk[i - 1].time, brk[i].time
) for att in all_atts
])
на
def gabt(brk0, brk1, all_atts):
att_gabt = att.get_annotations_between_timepoints
return [att_gabt(brk0.time, brk1.time) for att in all_atts]
word_list = [gabt(0, brk[0].time, all_atts)]
for brk0, brk1 in zip(brk[:-1], brk[1:]):
word_list.append(gabt(brk0.time, brk1.time, all_atts))
, поскольку он находится в классе, измененный код может выглядеть следующим образом:
def _gabt(self, brk0, brk1):
att_gabt = att.get_annotations_between_timepoints
return [att_gabt(brk0.time, brk1.time) for att in self.all_attributes]
word_list = [self._gabt(0, brk[0].time)]
for brk0, brk1 in zip(brk[:-1], brk[1:]):
word_list.append(self._gabt(brk0.time, brk1.time))