按排序顺序处理字典键



在以下代码片段中:

months = {'January': 1, 'February': 2, 'March': 3, 'December': 12}

我想按如下所示的排序顺序处理密钥:

for month_names in sorted(months.keys()):  
print(month_name, end=' ')

但我得到了以下输出:

December February January March

我原以为字符串的键会按数字排序,并期待:

February, December, January, March

我的问题是,为什么这个代码没有按数字排序?我是一个绝对的蟒蛇初学者,想知道这种行为请。

您提到的特定顺序既不是按字母顺序排列的,也不是按数字(按月份(排列的。

在您构建的字典中,键是月份的名称,值是月份编号。因此,为了按月份编号即值对字典进行排序(我认为这是你想要的?(,你可以做这样的

for month_name, month_num in sorted(dict.items() key = lambda x : x[1]):
print(month_name, end=' ')

最新更新