Повторите все возможные диапазоны списка

#python #list

Вопрос:

Я ищу функцию, которая принимает список и перебирает все возможные диапазоны, например:

 example = [1,2,3,4]   for i in a_list[i:j  ]:  # do something  

перебирает диапазоны между 0:j

  • [1,2]
  • [1,2,3]
  • [1,2,3,4]

а затем он перебирает диапазоны между 1:j

  • [2,3]
  • [2,3,4]

а затем он перебирает диапазоны между 2:j

  • [3,4]

И так далее…

Комментарии:

1. Это буквально вложенный цикл for

Ответ №1:

Используйте вложенные циклы:

 gt;gt;gt; example = [1,2,3,4] gt;gt;gt; for i in range(len(example)): ... for j in range(i, len(example)): ... print(example[i:j 1]) ... [1] [1, 2] [1, 2, 3] [1, 2, 3, 4] [2] [2, 3] [2, 3, 4] [3] [3, 4] [4]  

Комментарии:

1. Вы могли бы улучшить это с помощью описательных имен переменных: n = len(example); for start in range(n): for end in range(start, n) . Или start_pos , и end_pos если вы хотите быть откровенным.