I’m trying to sort a python dictionary with negative and positives as keys.
Ex:
{
"-25": 0,
"-24": 0,
"-26": 1,
"-23": 1,
"-3": 1,
"-2": 1,
"-4": 3,
"-9": 4,
"-6": 6,
"-10": 7,
"-22": 8,
"-7": 9,
"-5": 9,
"-19": 10,
"-8": 11,
"0": 4,
"-16": 16,
"-14": 16,
"-12": 16,
"-21": 17,
"-15": 17,
"1": 4
"-11": 17,
"-20": 19,
"-13": 20,
"-18": 24,
"-17": 26
}
and the expected output would be
{
"-26": 1,
"-25": 0,
"-24": 0,
"-23": 1,
"-22": 8,
"-21": 17,
"-20": 19,
"-19": 10,
"-18": 24,
"-17": 26
"-16": 16,
"-15": 17,
"-14": 16,
"-13": 20,
"-12": 16,
"-11": 17,
"-10": 7,
"-9": 4,
"-8": 11,
"-7": 9,
"-6": 6,
"-5": 9,
"-4": 3,
"-3": 1,
"-2": 1,
"0": 4,
"1": 4
}
I have tried sorting with the following code. But it is not able to sort properly as the keys are strings and it is not able to sort in the way I wanted.
dict(sorted(dict_to_sort.items(), key=lambda item: item[1]))
Any help would be appreciated. Thanks in advance.
Advertisement
Answer
sort as int.
dict(sorted(d.items(), key=lambda x:int(x[0])))
{'-26': 1,
'-25': 0,
'-24': 0,
'-23': 1,
'-22': 8,
'-21': 17,
'-20': 19,
'-19': 10,
'-18': 24,
'-17': 26,
'-16': 16,
'-15': 17,
'-14': 16,
'-13': 20,
'-12': 16,
'-11': 17,
'-10': 7,
'-9': 4,
'-8': 11,
'-7': 9,
'-6': 6,
'-5': 9,
'-4': 3,
'-3': 1,
'-2': 1,
'0': 4,
'1': 4}