如何在忽略大小写的情况下按键对字典进行排序?

Dav*_*idS 0 python hash dictionary python-2.7

我使用以下代码对我的字典进行排序:

meaningHash = {'Banana': 'fruit', 'apple': 'fruit'}
sortedMeaningHash = collections.OrderedDict(sorted(meaningHash.items()))
print sortedMeaningHash
Run Code Online (Sandbox Code Playgroud)

结果是:

OrderedDict([('Banana', 'fruit'), ('apple', 'fruit')])
Run Code Online (Sandbox Code Playgroud)

而期望的输出是:

OrderedDict([('apple', 'fruit'), ('Banana', 'fruit')])
Run Code Online (Sandbox Code Playgroud)

Tad*_*sen 6

您可以使用key参数来sorted按小写排序:

def check_lower(pair):
    key,value = pair
    return (key.lower(),value)

meaningHash={'Banana':'fruit','apple':'fruit'}

sortedMeaningHash = collections.OrderedDict(sorted(meaningHash.items(),
                                                    key=check_lower))
print(sortedMeaningHash)
Run Code Online (Sandbox Code Playgroud)

key是,返回每个项目应该进行排序表示的调用.所以它需要dict的每个元素的项目对,并调用.lower()键.