排序SortedDictionary需要与OrderedDict不同的键

时间:2016-06-20 15:05:53

标签: python python-2.7 sorteddictionary sortedcontainers

我在根据键值排序字典时遇到问题,键值最初是字符串。我正在寻找使用SortedDict的解决方案。下面我将字符串转换为int,但排序似乎是不合理的。

#using Jenks' library:
from sortedcontainers.sorteddict import SortedDict

mydict = SortedDict(
        lambda k: int(k[0]),
        {
        '1': '#fe70ac',
        '10': '#ff7400',
        '11': '#b6a2d1',
        '12': '#79bc3b',
        '100': '#000000',
        '101': '#000000',
        '102': '#000000'
        })

返回

SortedDict_items(
[('11', '#b6a2d1'),
('10', '#ff7400'),
('12', '#79bc3b'),
('1', '#fe70ac'),
('102', '#000000'),
('100', '#000000'),
('101', '#000000')....

1 个答案:

答案 0 :(得分:2)

如果您将int(k[0])替换为int(k),则会有效,因为否则您将根据密钥的第一个数字对您的字典进行排序。