对 SortedDictionary 进行排序需要与 OrderedDict 不同的键

Sorting a SortedDictionary Requires a Different Key from OrderedDict

我无法根据原本是字符串的键值对字典进行排序。我正在寻找使用 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'
        })

Returns

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

如果您将 int(k[0]) 替换为 int(k),它将起作用,否则您将根据键的第一位数字对字典进行排序。