簡體   English   中英

用換行符格式化python字典

[英]Formatting python dictionaries with break lines

我有這本字典。

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), ...

不起作用

我怎樣才能斷線?

漂亮的印刷品可能會滿足您的需求;

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

您可以使用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)

請注意,字典沒有固定的順序,因此格式化字符串中的鍵可能具有不同的順序。

pformatpprint接受其他參數,因此您可以修改結果: docs

Python Pretty Printer文檔

>>> 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM