2016-09-27 14 views
0

ここで提案された質問に対する解決策では、printing a two dimensional array in pythonは解決策の{:4}部分が正確に何を意味するのか把握できません。私はこのprintステートメントを試しましたが、うまくいくようですが、行列が非常に大きい場合は、貴重な情報を追加したり、スライスしたりしないようにしたいと思います。{:4}は、このマトリックス印刷ソリューションの意味は何ですか?

+0

ああ、素晴らしい!それは多くの意味があります。ありがとうございました。 – Daniel

+0

@ZdaR: "*出力は最大4文字になります*"。 **あなたは** minimum **を意味すると思います。 4文字以上が表示されている場合は、最後の文字列になります。少ない場合は、文字列が埋められます。数値は 'printf"%4s "'のように、最小フィールド幅です。 '" {:4} "を試してください。format(" 123456 ")'。 docは "* widthは最小フィールド幅を定義する10進整数です*" https://docs.python.org/3/library/string.html#formatspec – cdarke

答えて

2

出力のパディングとアラインメントと関係があります。 printfファンクションでは、cまたはawkなどのパディングと似ています。各印刷エレメントの幅はnで、n{:n}です。

''.join('{:3}'.format(x) for x in range(100)) 

ウィル出力:

' 0 1 2 3 4 5 ... 95 96 97 98 99' 

お知らせ0の左にある二つのスペース対99の左に単一のスペース。つまり、各数字の幅は3文字です。

さらに従来の構文を使用しても同様の効果を得ることができます。

''.join('%3s' % x for x in range(100)) 
関連する問題