2017-07-18 9 views
0

私はこの辞書を持っています。ブレークライン付きのPython辞書の書式設定

results = {'name': sectionAddr.name, 
       'count': sampleCount, 
       'finish_count': len(finished), 
       'inside4_count': inside4Count, 
       'inside10_count': inside10Count, 
       'finish_rate': 100 * len(finished)/sampleCount, 
       'inside4_rate': 100 * inside4Count/sampleCount, 
       'inside10_rate': 100 * inside10Count/sampleCount, 
       'mean_error': meanError, 
       'stddev_error': stddevError, 
       'samples': sampleResults} 
    results['error'] = getError(results 

しかし、私はそれを表示する必要があります。 strへの書式設定でこれを行うと、文字列、つまり行のように見えます。どのように私は各変数の後に改行する必要がありますか?そのような

何か:

results = {'name': sectionAddr.name + '\n', 
'finish_count': len(finished), ... 

動作しません、

私はラインを破ることができますか?

+3

、セットではありません。私はあなたがいつでもセットを望んでいないと仮定している、それは単なる間違いですか? –

答えて

1

あなたのニーズに合ったプリントが得られるでしょう。

import pprint 
pprint.pprint(result) 

きれいなプリントを使用したくない場合は、

result = {'a': '1', 
      'b': '2', 
      'c': '3'} 

print('\n'.join('\t'.join((key, result[key])) for key in result)) 

出力;

a 1 
c 3 
b 2 
+0

私は必要ですが、エラーがあります: 'TypeError:リストインデックスは整数でもなく、スライスでなければなりません' –

1

あなたはきれいにフォーマットされた文字列を取得するためにpprint.pformatを使用することができます。

import pprint 

results = {'name': "sectionAddr.name", 
       'count': "sampleCount", 
       'finish_count': "len(finished)", 
       'inside4_count': "inside4Count", 
       'inside10_count': "inside10Count", 
       'samples': "sampleResults"} 

s = pprint.pformat(results) 

print(s) 

出力:あなたはそれを文字列として必要とするだけに印刷したくない場合は

{'count': 'sampleCount', 
'finish_count': 'len(finished)', 
'inside10_count': 'inside10Count', 
'inside4_count': 'inside4Count', 
'name': 'sectionAddr.name', 
'samples': 'sampleResults'} 

あるいは、コンソールを直接使用することができますpprint.pprint

pprint.pprint(results) 

ディクショナリには固定順序がないため、書式設定された文字列のキーの順序が異なる可能性があります。

両方 pformat

pprintあなたが結果を変更することができますので、追加のパラメータを受け入れる:docs

+0

ありがとう、しかし、ファイルに書きたいのですか?それは行になります、どのように '\ n'を追加しますか? –

+0

@ E.Trofimov '' pformat''でフォーマットされた文字列をファイルに書き込もうとしましたか? –

+0

htmlファイルがあります –

0

Pythonのプリティプリンタのマニュアル

>>> import pprint 
>>> tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', 
... ('parrot', ('fresh fruit',)))))))) 
>>> stuff = ['a' * 10, tup, ['a' * 30, 'b' * 30], ['c' * 20, 'd' * 20]] 
>>> pprint.pprint(stuff) 
['aaaaaaaaaa', 
('spam', 
    ('eggs', 
    ('lumberjack', 
    ('knights', ('ni', ('dead', ('parrot', ('fresh fruit',)))))))), 
['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'], 
['cccccccccccccccccccc', 'dddddddddddddddddddd']] 

ご利用の場合:これは辞書がある

import pprint 
pprint.pprint(results)