我在python中创建了一个字典来处理购买的更改。

money = { '$100.00' : 0, '$50.00' :  0, '$20.00' : 0,'$10.00' : 0,
              '$5.00' : 0, '$1.00' : 0,'$0.25' : 0, '$0.10' : 0, '$0.05' : 0,
              '$0.01' : 0}


但是,当我要打印此货币时,我似乎无法做到“从最小到最大”货币。

这是我尝试对它进行排序的步骤:

keyList = list(money.keys())
keyList.sort()
for key in keyList:
    print(key, money[key])


但是给出的结果是从... $ 1-> $ 10-> $ 100-> $ 20 ...任何建议,所以它将是$ 1-> $ 5-> $ 10 ...?

最佳答案

排序是按字典顺序(即按字母顺序)一次进行。更改您的排序功能以删除美元符号并转换为浮点数:

keyList.sort(key=lambda x:float(x[1:]))


或者更好的方法是,从键中删除"$",使键浮动,仅在打印时添加"$"

10-07 14:02
查看更多