栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在pprint输出中禁用排序机制

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在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 contextlib@contextlib.contextmanagerdef 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})


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/455968.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号