#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
если вы хотите быть откровенным.