我在根据键值排序字典时遇到问题,键值最初是字符串。我正在寻找使用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')....
答案 0 :(得分:2)
如果您将int(k[0])
替换为int(k)
,则会有效,因为否则您将根据密钥的第一个数字对您的字典进行排序。