45 Stimmen

Python "beste Formatierungspraxis" für Listen, Wörterbücher, etc.

Ich habe mir die Python Dokumentation für bewährte Verfahren zur Codeformatierung, z. B. für große Listen und Wörterbücher,

something = {'foo' : 'bar', 'foo2' : 'bar2', 'foo3' : 'bar3'..... 200 chars wide, etc..}

o

something = {'foo' : 'bar',
             'foo2' : 'bar2',
             'foo3' : 'bar3',
             ...
             }

o

something = {
             'foo' : 'bar',
             'foo2' : 'bar2',
             'foo3' : 'bar3',
             ...
             }

Wie behandle ich tiefe Verschachtelungen von Listen/Wörterbüchern?

43voto

frodopwns Punkte 852

Nach Angaben der PEP8-Leitfaden Es gibt zwei Möglichkeiten, ein Wörterbuch zu formatieren:

mydict = {
    'key': 'value',
    'key': 'value',
    ...
    }

OR

mydict = {
    'key': 'value',
    'key': 'value',
    ...
}

Wenn Sie sich an PEP8 halten wollen, würde ich sagen, alles andere ist technisch falsch.

42voto

aaronasterling Punkte 65115

Mein bevorzugter Weg ist:

something = {'foo': 'bar',
             'foo2': 'bar2',
             'foo3': 'bar3',
             ...
             'fooN': 'barN'}

36voto

danlei Punkte 13862

Ich bevorzuge den Einrückungsstil von aaronasterling. Dieser und mehrere andere Stile werden erklärt in eine weitere SO-Frage . Insbesondere die Antwort von Lennart Regebro gab einen guten Überblick.

Aber für diesen Stil wurde am meisten gestimmt:

my_dictionary = {
    1: 'something',
    2: 'some other thing',
}

7voto

eumiro Punkte 193562

Definieren Sie Ihr Wörterbuch so, wie Sie wollen, und versuchen Sie dann Folgendes:

from pprint import pprint

pprint(yourDict)

# for a short dictionary it returns:

{'foo': 'bar', 'foo2': 'bar2', 'foo3': 'bar3'}

# for a longer/nested:

{'a00': {'b00': 0,
         'b01': 1,
         'b02': 2,
         'b03': 3,
         'b04': 4,
         'b05': 5,
         'b06': 6,
         'b07': 7,
         'b08': 8,
         'b09': 9},
 'a01': 1,
 'a02': 2,
 'a03': 3,
 'a04': 4,
 'a05': 5,
 'a06': 6,
 'a07': 7,
 'a08': 8,
 'a09': 9,
 'a10': 10}

Gefällt Ihnen das Ergebnis?

3voto

Jungle Hunter Punkte 7159

Wenn Sie nach ganeti (die PEP 8 berücksichtigt), sollten Sie die dritte Option wählen.

something = {
             'foo1': 'bar1',
             'foo2': 'bar2',
             'foo3': 'bar3',
             ...
             }

Das gefällt mir besonders gut, weil man auswählen kann nur die von Ihnen gewünschten Elemente. Und ich denke, dass das Entfernen oder Hinzufügen von Elementen an beiden Enden auf diese Weise schneller geht.

Anmerkung: Wie im Kommentar erwähnt, sollte gemäß PEP kein Leerzeichen vor ':' (E203) stehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X