在pprint输出中禁用排序机制

在pprint输出中禁用排序机制,第1张

在pprint输出禁用排序机制

您可以猴子修补pprint模块。

import pprintpprint.pprint({"def":2,"ghi":3,"abc":1,})pprint._sorted = lambda x:x# Or, for Python 3.7:# pprint.sorted = lambda x, key=None: xpprint.pprint({"def":2,"ghi":3, "abc":1})

由于第二个输出基本上是随机排序的,因此您的输出可能与我的不同:

{'abc': 1, 'def': 2, 'ghi': 3}{'abc': 1, 'ghi': 3, 'def': 2}

另一个版本更复杂,但更易于使用:

import pprintimport [email protected] pprint_nosort():    # Note: the pprint implementation changed somewhere    # between 2.7.12 and 3.7.0. This is the danger of    # monkeypatching!    try:        # Old pprint        orig,pprint._sorted = pprint._sorted, lambda x:x    except AttributeError:        # New pprint        import builtins        orig,pprint.sorted = None, lambda x, key=None:x    try:        yield    finally:        if orig: pprint._sorted = orig        else: del pprint.sorted# For times when you don't want sorted outputwith pprint_nosort():    pprint.pprint({"def":2,"ghi":3, "abc":1})# For times when you do want sorted outputpprint.pprint({"def":2,"ghi":3, "abc":1})


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5431493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存