带有负值的Python sort()问题
发布时间:2020-12-20 11:06:41 所属栏目:Python 来源:网络整理
导读:今天是个好日子, 我在使用sorted()函数对dict中的百分比值进行排序时遇到了问题.当我得到负数时,它会排序最大的负数,然后是第二大的负数.我希望最小的负数首先出现.有没有办法修改我的sorted()来实现这个目的?干杯! yoy_dict = sorted(yoy_dict.items(),key
今天是个好日子,
我在使用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在两个字符串中找到第一个不同的字符时,它会选择最大字符并在此处停止. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |