我在 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...吗?
最佳答案
排序是按字典顺序进行的,即按字母顺序,一次一个字符。更改您的排序功能以删除美元符号并转换为 float :
keyList.sort(key=lambda x:float(x[1:]))
或者更好的是,从键中删除 "$"
,让键保持 float ,并且只在打印时添加 "$"
关于python - 如何正确排序 Python 字典中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21592499/