如何首先根据字典的单位(bit/s、Kbit/s 等)对特定的字典列表进行排序,然后根据它们的值对它们进行排序

my_lst = [
        {"usage": "0.59 Kbit/s"},
        {"usage": "383.34 bit/s"},
        {"usage": "158.13 bit/s"},
        {"usage": "4.15 Gbit/s"},
        {"usage": "18.5 Mbit/s"},
        {"usage": "45 Kbit/s"}
    ]

试图实现的输出应该是这样的,带有排序值:-

my_lst = [
    {'usage': '4.15 Gbit/s'}, 
    {'usage': '18.5 Mbit/s'}, 
    {'usage': '45 Kbit/s'}, 
    {'usage': '0.59 Kbit/s'}, 
    {'usage': '383.34 bit/s'}, 
    {'usage': '158.13 bit/s'}
]

回答

单向使用humanfriendly.parse_size

from humanfriendly import parse_size
sorted(my_lst, key=lambda x: parse_size(x["usage"]), reverse=True)

输出:

[{'usage': '4.15 Gbit/s'},
{'usage': '18.5 Mbit/s'},
{'usage': '45 Kbit/s'},
{'usage': '0.59 Kbit/s'},
{'usage': '383.34 bit/s'},
{'usage': '158.13 bit/s'}]

以上是如何首先根据字典的单位(bit/s、Kbit/s 等)对特定的字典列表进行排序,然后根据它们的值对它们进行排序的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>