Так что я думал, что, возможно, захочу сделать это, но потом понял, что мне это не нужно, поскольку он ничего не добьется. И на данный момент я не могу думать о причине, которая вам может понадобиться, поэтому это больше вопрос любопытства.Python динамически меняет порядок вложенных циклов
Есть ли способ изменить порядок выполнения набора вложенных циклов?
например;
Say я имел что-то вроде:
for j in js:
for k in ks:
for l in ls:
#do something
Есть ли способ, что я мог бы динамически поменять for j in ...
и for k in ...
линии, чтобы изменить порядок, что все делается в главном теле цикла?
Я должен сказать, я понимаю, что я мог бы сделать это с чем-то вроде
variable_lists_list = [js, ks, lk]
for a in variable_lists_list[preference1]:
for b in variable_lists_list[preference1]:
for c in variable_lists_list[preference1]:
#Do something
Но есть аккуратнее путь, который позволит мне использовать j,k,l
и не придется беспокоиться, что есть на самом деле не из соответствующих списков js, ks, ls
?
Чем больше я думаю об этом, тем больше я думаю, что если вам нужно использовать конструкцию, подобную этой, вы должны, вероятно, переосмыслить проблему, поскольку она просто сбивает с толку, но все же я нажимаю. Это возможно?
Ситуация, из-за которой я изначально думал о том, где это может быть полезно, было бы, когда вырваться из циклов произойдет рано из-за чего-то, возможно, если вы что-то искали и имели некоторые знания, которые могли бы помочь вам решить, какие переменные перейдем к предпочтению. Помимо чего-то подобного, есть ли какая-то ситуация, когда такая система была бы полезной?
Я предполагаю, что вы ищете 'itertools.product' здесь. – georg
@georg - я думаю, после этого я мог бы сортировать наборы, если 'j, k, l' предпочтительно предназначаться для различных ситуаций. – will
добавлен пример. – georg