Wenn Du Deine Listen in einem dict organisieren würdest,
könntest Du geziehlt welche auswählen.
Das dynamische Schachteln halte ich im Moment nur für möglich,
wenn man sich das dazugehörige Codestück dynamisch zusammenbaut
und anschliessend mit eval/exec ausführt.
Code: Alles auswählen
lists = {'test1':[1,2,3,4],'test2':[1,2,3,4],'test3':[1,2,3,4]} # die Listen
order = ('test3','test1','test2') # Die Schachtelung
forbidden = () # Alle sollen laufen
snippet = ''
def ident(n):
return ' '*n
for n,o in enumerate([o for o in order if o not in forbidden]):
snippet += ident(n) + '%s = %s' % (o,repr(lists[o])) + '\n'
snippet += ident(n) + 'for a%i in %s:' % (n,o) + '\n'
snippet += ident(n+1) + 'print "%s",a%i' % (o,n) + '\n'
print snippet
exec(snippet)
Ergebnis:
Code: Alles auswählen
test3 = [1, 2, 3, 4]
for a0 in test3:
print "test3",a0
test1 = [1, 2, 3, 4]
for a1 in test1:
print "test1",a1
test2 = [1, 2, 3, 4]
for a2 in test2:
print "test2",a2
test3 1
test1 1
test2 1
test2 2
test2 3
test2 4
test1 2
test2 1
test2 2
test2 3
test2 4
test1 3
test2 1
test2 2
test2 3
test2 4
test1 4
test2 1
test2 2
test2 3
test2 4
test3 2
test1 1
test2 1
test2 2
test2 3
test2 4
test1 2
test2 1
test2 2
test2 3
test2 4
test1 3
test2 1
test2 2
test2 3
test2 4
test1 4
test2 1
test2 2
test2 3
test2 4
test3 3
test1 1
test2 1
test2 2
test2 3
test2 4
test1 2
test2 1
test2 2
test2 3
test2 4
test1 3
test2 1
test2 2
test2 3
test2 4
test1 4
test2 1
test2 2
test2 3
test2 4
test3 4
test1 1
test2 1
test2 2
test2 3
test2 4
test1 2
test2 1
test2 2
test2 3
test2 4
test1 3
test2 1
test2 2
test2 3
test2 4
test1 4
test2 1
test2 2
test2 3
test2 4