带有负值的Python sort()问题

带有负值的Python sort()问题,第1张

概述今天是个好日子, 我在使用sorted()函数对dict中的百分比值进行排序时遇到了问题.当我得到负数时,它会排序最大的负数,然后是第二大的负数.我希望最小的负数首先出现.有没有办法修改我的sorted()来实现这个目的?干杯! yoy_dict = sorted(yoy_dict.items(), key=lambda x: x[1], reverse = True)yoy_dict = [ 今天是个好日子,

我在使用sorted()函数对dict中的百分比值进行排序时遇到了问题.当我得到负数时,它会排序最大的负数,然后是第二大的负数.我希望最小的负数首先出现.有没有办法修改我的sorted()来实现这个目的?干杯!

yoy_dict = sorted(yoy_dict.items(),key=lambda x: x[1],reverse = True)yoy_dict = [('HOUGANG','1.130759%'),('JURONG EAST','0.786807%'),('PUNGGol','0.238738%'),('SEMBAWANG','-2.150383%'),('WOODLANDS','-2.043103%'),('CHOA CHU KANG','-1.923021%'),('SENGKANG','-1.548278%'),('MARINE ParaDE','-1.445532%'),('CENTRAL AREA','-1.266556%'),('JURONG WEST','-1.037612%'),('YISHUN','-0.843832%'),('BUKIT BATOK','-0.296952%')]
解决方法 似乎您的问题是由于使用字符串而不是数字来存储百分比值.您需要将字符串转换为浮点数.

key=lambda x: float(x[1][:-1])

注意:

10 > 9  # True'10' > '9'  # False

这是因为字符串正在及时比较一个字符.当Python在两个字符串中找到第一个不同的字符时,它会选择最大字符并在此处停止.

总结

以上是内存溢出为你收集整理的带有负值的Python sort()问题全部内容,希望文章能够帮你解决带有负值的Python sort()问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1192170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存