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

时间:2016-03-18 11:20:31

标签: python python-2.7 dictionary hash

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

meaningHash = {'Banana': 'fruit', 'apple': 'fruit'}
sortedMeaningHash = collections.OrderedDict(sorted(meaningHash.items()))
print sortedMeaningHash

结果是:

OrderedDict([('Banana', 'fruit'), ('apple', 'fruit')])

所需的输出是:

OrderedDict([('apple', 'fruit'), ('Banana', 'fruit')])

2 个答案:

答案 0 :(得分: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)

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

答案 1 :(得分:4)

sorted电话添加密钥arg:

sortedMeaningHash = collections.OrderedDict(sorted(meaningHash.items(), key=lambda x: x[0].lower()))