对 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)
,它将起作用,否则您将根据键的第一位数字对字典进行排序。
我无法根据原本是字符串的键值对字典进行排序。我正在寻找使用 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)
,它将起作用,否则您将根据键的第一位数字对字典进行排序。