Python给定一个16进制的字符列表,进行排序

原始16进制数据:s =  ['17a', '1', '16', '1f']

思路:打算将s转换成十进制,并存储到字典中,key值就是原始16进制数据,value就是十进制数据,前提是原始16进制没有重复数据,最后按照value值进行排序,再取出key值

合并写法:

list(dict(sorted({i:int(i,16) for i in s}.items(),key=lambda item:item[1])).keys())

分开写法: 

dic = {i:int(i,16) for i in s}

dic = {'17a': 378, '1': 1, '16': 22, '1f': 31}

根据value值进行从小到大排序:

# 通过key这个参数,指定排序是按照字典dic中的value,也就是第一个元素item[1]的值来排序,
# 这里item也可以写其他字母,如果是item[0],则是按照字典dic中的key进行排序
so = sorted(dic.items(),key=lambda item:item[1])

so = [('1', 1), ('16', 22), ('1f', 31), ('17a', 378)]

将so转换成字典

so = dict(so)

so = {'1': 1, '16': 22, '1f': 31, '17a': 378}

取出key值转换成list

result = list(so.keys())

result = ['1', '16', '1f', '17a']

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值