[英]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)
請注意,字典沒有固定的順序,因此格式化字符串中的鍵可能具有不同的順序。
pformat
和pprint
接受其他參數,因此您可以修改結果: 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.