2017-01-23 2 views
3

Python muss eingerückt werden. So, wie komplexe verschachtelte Objekte inline initialisiert werden?Initialisiere komplexe verschachtelte Listen in Python in vielen Zeilen?

Sollte ich schreibe sie in einer langen Reihe

rewards = [[-0.04, -0.04, -0.04, -0.04], [-0.04, 0, -0.04, -0.04], [-0.04, -0.04, -0.04,-0.04]] 

Oder kann ich sie irgendwie wickeln?

UPDATE

Meine Frage ist, lange Linien nicht zu brechen, die eindeutig in der Dokumentation geschrieben, sondern über lange Leitungen bei der Definition komplexe verschachtelte Strukturen, wie die Liste der Listen der Wörterbücher von Listen zu brechen. Ich konnte nicht glauben, dass wir die Linienkontinuitätssyntax hier verwenden sollten.

UPDATE 1

Nein, es ist kein Duplikat.

+0

inline? Du meinst in einer Python interaktiven Shell? –

+1

innerhalb der Klammern, einschließlich '[', '{', und '(', können Sie jede gewünschte Formatierung verwenden. – thebjorn

+1

Mögliches Duplikat von [Ist es möglich, eine lange Zeile in Python auf mehrere Zeilen zu setzen] (http: // stackoverflow.com/questions/4172448/is-it-possible-to-break-a-long-line-to-multiple-lines-in-python) –

Antwort

3

in Klammern in der vorherige Antwort erwähnt wird, einschließlich [, { und ( können Sie beliebige Formatierungen verwenden.

9

Eine Möglichkeit ist, zu verwenden:

rewards = [ 
    [-0.04, -0.04, -0.04, -0.04], 
    [-0.04, 0, -0.04, -0.04], 
    [-0.04, -0.04, -0.04,-0.04] 
] 

Beachten Sie, dass Leerzeichen innerhalb einer Liste für die Elemente überflüssig zu trennen, da die lexer sie entfernen wird; Das ist einfach eine Frage der Lesbarkeit nach Geschmack.

Sie könnten es in einer Zeile schreiben, aber Sie werden sehr leicht die 80 Zeichen Grenze treffen, wenn Sie so mit langen geschachtelten Listen tun, und ich persönlich finde diese Darstellung Leser freundlich nicht.

+0

Sorry, Sie sind absolut richtig, aber ich akzeptiere @ Theborn's Antwort, weil seine Erklärung für mich non-pythonian war das, was ich verpasste – Dims

+1

@Dims keine Sorgen :) –

0

Sie jede Zeile mit einem Backslash in Python wickeln können:

rewards = [[-0.04, -0.04, -0.04, -0.04], \ 
[-0.04, 0, -0.04, -0.04], [-0.04, -0.04, -0.04,-0.04]] 

Noch es ist nicht wirklich hier gebraucht, da es

+5

Dies ist ein Ort, an dem Sie nicht brauchen (und sollte wirklich nicht) Verwenden Sie ein Zeilenfortsetzungszeichen. – thebjorn

+0

Wir brauchen es nicht, aber es ist ein bisschen besser lesbar mit ihm –

+1

Nein, es ist wirklich nicht :-) Sie können es entfernen, ohne die Semantik zu beeinflussen - und wenn Sie es lesbarer wollen, sollten Sie tun, was @mu tat und richtige semantische Formatierung bieten ;-) – thebjorn

Verwandte Themen