2009-09-16 19 views
5

コードに辞書リテラルを書くときに主に使用される規約は何と思いますか?Pythonのブラケットの表記

私は回答として可能な慣習を書きます。

+3

ポーリングはコミュニティウィキである必要があります – SilentGhost

答えて

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

+1末尾のカンマ。 – RichieHindle

+0

最初は、リスト、ディクテーションなどで後続のコンマを使用することには感謝していませんでしたが、並べ替え、コピー/貼り付け、新しい項目の追加など、リストの後続編集が簡単になりました。 – PaulMcG

+3

1行を追加すると、コンマが1行で表示されます。 – u0b34a0f6ae

13

ほとんど標準がないと思います。

私はインデントの二つの方法を見てきました:

Indent 1: 
my_dictionary = { 
    'uno': 'something', 
    'number two': 'some other thing', 
} 

Indent 2: 
my_dictionary = {'uno': 'something', 
       'number two': 'some other thing', 
       } 

私はエンドブラケットを持つように配置3を見てきました:

End 1: 
my_dictionary = {'uno': 'something', 
       'number two': 'some other thing', 
} 

End 2: 
my_dictionary = {'uno': 'something', 
       'number two': 'some other thing', 
       } 

End 3: 
my_dictionary = {'uno': 'something', 
       'number two': 'some other thing',} 

そして、時にはあなたが値を正当化:

my_dictionary = {'uno':  'something', 
       'number two': 'some other thing', 
       } 

時にはコロン:

my_dictionary = {'uno'  : 'something', 
       'number two' : 'some other thing', 
       } 

これは変わったようです。

そして、時にはあなたが最後のコンマを持って、そして時にはません:

my_dictionary = {'uno': 'something', 
       'number two': 'some other thing'} 

と(それが収まる場合)時に使用すると、1つの行にそれをすべて固執。

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

誰もがこれらのスタイルを独自に組み合わせているようです。個人的に私はあなたの例で使用するスタイルに向いています。文章の一部として辞書を持っているのは、一般的な理由ではありません。そうですね:

amethodthattakesadict({'hey': 'this', 
         'looks': 'a', 
         'bit': 'shitty', 
         }) 

私はあなたが編集しているコードを書いた人のスタイルに適応することをお勧めします。あなたのコードの場合:好きなようにしてください。エンドブレースについて:-)

+2

+1すべての可能性をうまく説明します。 – hcs42

+5

実際にPEP8によって管理される例の唯一の部分は、コロンの周囲のスペースです。前はゼロ、後はゼロ。 – Triptych

8

:私はこのようにそれを好む:

my_dictionary = { 
    'a': 'first value', 
    'b': 'second', 
    } 

と私はなぜあなたを教えてあげましょう:Pythonコードのインデントは一切近いトークンを持っていないので、コードはそのようにインデントされています。最初にline(if、while、defなど)は、他のすべての行が同じ量だけインデントされた状態で残りの部分からアウトデントされます。句の最後の行は他のすべてと一緒に字下げされています。最初の行と同じインデントされた次の行は、次の行の最後の行ではなく、次の句の最初の行です。

私は、データ構造に明示的な終了トークンがあるにもかかわらず、コード句の慣習と同様の慣習を使ってデータ構造を字下げしたいので、より柔軟性があります。

-3

辞書が1行に収まらには大きすぎる場合、私は、次の操作を行います。

d = \ 
    { 
    'a' : 'b', 
    'c' : 'd' 
    } 
3

インデントスタイル1(レナートの答えの後)スタイル3を終了:

my_dictionary = {1: 'thing_one', 
        2: 'thing_two', 
        ... 
        n: 'thing_n'} 

これは、Pythonの空白の書式によく似ているため、括弧で囲まれたエンティティのための最もシームレスなインデントスタイルです。 PythonコードのCスタイルインデントにドロップすることは、私にとって少し厄介なように思えました。普遍的なためにC言語に慣れ親しんだプログラマーは、異なるインデントスタイルにさらされていない可能性があるため、

欠点は、先頭または末尾の挿入が他のスタイルより少し難しいことです。 Pythonコードの作成をサポートする適切なエディタを考えれば、それほど大きな違いはありません。

この字下げスタイルを文脈で試してみて、それをCスタイルの字下げと並べて比較して、どれがよりピジョンソニックで一貫しているかを判断します。

それはLispコードが 世紀 十年以来、インデントされた方法であるので、多分これは、Lispのスタイルのインデントと呼ばれることができ、それは、例えば、また、多くの場合、Smalltalkのコードで使用されています。括弧の配置に関する話題(言語のようなLispの中で)でよく読まれることの1つは、「なぜ彼らに余分な行を与えるのか?

しかし、一日の終わりにはほとんど味のものです。

関連する問題