使用pprint命令dict时忽略大小写?

时间:2017-07-21 19:44:32

标签: python dictionary printing pprint

所以我有一本字典,说:

myDict = {"145":1, "Kittens":2, "apples":1, "trees":2}

并使用pprint(myDict, ...),我得到:

{'145': 1,
 'Kittens': 2,
 'apples': 1,
 'trees': 2}

相反,我想忽略大写K的明显优先顺序并得到:

{'145': 1,
 'apples': 1,
 'Kittens': 2,
 'trees': 2}

我必须使用PrettyPrinter模块吗?有隐藏的pprint参数吗?还是完全有另一种解决方案?我的dict键并不比这更复杂。谢谢。

1 个答案:

答案 0 :(得分:2)

没有导入,简单版本:

def printdict(myDict):
    print('{')
    for a,b in sorted(myDict.items(),key = lambda tuple : tuple[0].lower()):
        print("'"+str(a)+"'"+" : "+str(b))
    print('}')

根据PM 2Ring改进版本(这适用于任何事情):

def printdict(myDict):
    print('{')
    for a,b in sorted(myDict.items(),key = lambda t : t[0].lower()):
        print(' {!r}: {!r},'.format(a, b))
    print('}')