Drucken ist eine seltsame Sache, um ein Listenverständnis aufzurufen. Es würde helfen, wenn Sie uns zeigen, welche Ausgabe Sie wollen, nicht nur der Code, der nicht funktioniert.
Hier sind zwei Vermutungen für Sie. In jedem Fall ist der wichtige Punkt, dass die Wertangabe in einem Listenverständnis ein einzelner Wert sein muss. Sie können nicht mehrere Objekte gleichzeitig einfügen. (Wenn das, was Sie versuchen, mit dem zweiten Beispiel zu tun, überspringen.)
list1 = [1, 2, 3]
list2 = [(i, i*2, i) for i in list1]
# list2 = [(1, 2, 1), (2, 4, 2), (3, 6, 3)]
Um eine flache Liste zu erhalten:
list1 = [1, 2, 3]
tmp = [(i, i*2) for i in list1]
list2 = []
map(list2.extend, tmp)
# list2 = [1, 2, 1, 2, 4, 2, 3, 6, 3]
Edit: Inkrementieren einen Wert in der Mitte der Liste Verständnis ist immer noch seltsam. Wenn Sie es wirklich tun müssen, ist es besser, wenn Sie nur eine reguläre for-Schleife schreiben und Werte hinzufügen, während Sie fortfahren. In Python wird eine solche Schlauheit fast immer als "unpythonisch" gebrandmarkt. Tun Sie es, wenn Sie müssen, aber Sie werden kein Ende der Flak in Foren wie diesem bekommen. ;)
Was ist los mit der gewöhnlichen for-Anweisung? Warum sollten Sie sich damit beschäftigen, wenn Sie eine vollkommen gute Aussage haben? Was versuchst du zu erreichen? –
Nichts, ich möchte nur sehen, ob es möglich ist, Listen mit Python-Listen zu erstellen. –