Ответ 1
Вам нужно itertools.product.
from itertools import product
for vals in product(*list(aDict.values())):
# vals will be (l1, l2, ..., ln) tuple
ОК по динамическому я имею в виду неизвестный во время выполнения.
здесь есть dict:
aDict[1]=[1,2,3]
aDict[2]=[7,8,9,10]
aDict[n]=[x,y]
Я не знаю, сколько n будет, но я хочу, чтобы цикл был следующим:
for l1 in aDict[1]:
for l2 in aDict[2]:
for ln in aDict[n]:
# do stuff with l1, l2, ln combination.
Любые предложения о том, как это сделать? Я относительно новичок в python, поэтому, пожалуйста, будьте осторожны (хотя я программирую в php). BTW Я использую python 3.1
Вам нужно itertools.product.
from itertools import product
for vals in product(*list(aDict.values())):
# vals will be (l1, l2, ..., ln) tuple
Та же идея, что и DrTyrsa, но правильный порядок правильный.
from itertools import product
for vals in product( *[aDict[i] for i in sorted(aDict.keys())]):
print vals